home *** CD-ROM | disk | FTP | other *** search
/ Clickx 47 / Clickx 47.iso / assets / software / SyncBack / VirtualBox_1.5.4_Win_x86.msi / sdkidlFile < prev    next >
Encoding:
Text File  |  2007-12-29  |  81.6 KB  |  3,272 lines

  1.  
  2. /*
  3.  *  DO NOT EDIT! This is a generated file.
  4.  *
  5.  *  MS IDL (MIDL) definition for VirualBox Main API (COM interfaces)
  6.  *  generated from XIDL (XML interface definition).
  7.  *
  8.  *  Source    : src/VBox/Main/idl/VirtualBox.xidl
  9.  *  Generator : src/VBox/Main/idl/midl.xsl
  10.  */
  11.     
  12. import "unknwn.idl";
  13.  
  14. cpp_quote("enum {")
  15.  
  16. cpp_quote("    kTypeLibraryMajorVersion = 1,")
  17.  
  18. cpp_quote("    kTypeLibraryMinorVersion = 0")
  19.  
  20. cpp_quote("};")
  21.  
  22. [
  23.     uuid(46137EEC-703B-4fe5-AFD4-7C9BBBBA0259),
  24.     version(1.3),
  25.     helpstring("innotek VirtualBox Type Library")
  26. ]
  27. library VirtualBox
  28. {
  29.  
  30. importlib("stdole2.tlb");
  31.  
  32. interface IVirtualBoxErrorInfo;
  33. interface IVirtualBoxCallback;
  34. interface IVirtualBox;
  35. interface IMachineEnumerator;
  36. interface IMachineCollection;
  37. interface IInternalMachineControl;
  38. interface IBIOSSettings;
  39. interface IMachine;
  40. interface IConsoleCallback;
  41. interface IRemoteDisplayInfo;
  42. interface IConsole;
  43. interface IHostDVDDrive;
  44. interface IHostDVDDriveEnumerator;
  45. interface IHostDVDDriveCollection;
  46. interface IHostFloppyDrive;
  47. interface IHostFloppyDriveEnumerator;
  48. interface IHostFloppyDriveCollection;
  49. interface IHostNetworkInterface;
  50. interface IHostNetworkInterfaceEnumerator;
  51. interface IHostNetworkInterfaceCollection;
  52. interface IHost;
  53. interface ISystemProperties;
  54. interface IGuestOSType;
  55. interface IGuestOSTypeEnumerator;
  56. interface IGuestOSTypeCollection;
  57. interface IGuest;
  58. interface IProgressEnumerator;
  59. interface IProgressCollection;
  60. interface IProgress;
  61. interface ISnapshotEnumerator;
  62. interface ISnapshotCollection;
  63. interface ISnapshot;
  64. interface IHardDiskAttachment;
  65. interface IHardDiskAttachmentEnumerator;
  66. interface IHardDiskAttachmentCollection;
  67. interface IHardDiskEnumerator;
  68. interface IHardDiskCollection;
  69. interface IHardDisk;
  70. interface IVirtualDiskImage;
  71. interface IISCSIHardDisk;
  72. interface IVMDKImage;
  73. interface IDVDImageEnumerator;
  74. interface IDVDImageCollection;
  75. interface IDVDImage;
  76. interface IDVDDrive;
  77. interface IFloppyImageEnumerator;
  78. interface IFloppyImageCollection;
  79. interface IFloppyImage;
  80. interface IFloppyDrive;
  81. interface IKeyboard;
  82. interface IMouse;
  83. interface IFramebuffer;
  84. interface IFramebufferOverlay;
  85. interface IDisplay;
  86. interface INetworkAdapter;
  87. interface ISerialPort;
  88. interface IParallelPort;
  89. interface IMachineDebugger;
  90. interface IUSBController;
  91. interface IUSBDeviceEnumerator;
  92. interface IUSBDeviceCollection;
  93. interface IUSBDevice;
  94. interface IUSBDeviceFilterEnumerator;
  95. interface IUSBDeviceFilterCollection;
  96. interface IUSBDeviceFilter;
  97. interface IHostUSBDeviceEnumerator;
  98. interface IHostUSBDeviceCollection;
  99. interface IHostUSBDevice;
  100. interface IHostUSBDeviceFilterEnumerator;
  101. interface IHostUSBDeviceFilterCollection;
  102. interface IHostUSBDeviceFilter;
  103. interface IAudioAdapter;
  104. interface IVRDPServer;
  105. interface ISharedFolderEnumerator;
  106. interface ISharedFolderCollection;
  107. interface ISharedFolder;
  108. interface IInternalSessionControl;
  109. interface ISession;
  110.  
  111. [
  112.     uuid(523ff64d-842a-4b1a-80e7-c311b028cb3a),
  113.     v1_enum
  114. ]
  115. typedef enum 
  116. {
  117.     False = 0,
  118.     True = 1,
  119.     Default = 2
  120. } TriStateBool;
  121.  
  122. /* cross-platform type name for TriStateBool */
  123. cpp_quote("#define TriStateBool_T TriStateBool")
  124.  
  125. cpp_quote("")
  126. /* cross-platform constants for TriStateBool */
  127. cpp_quote("#define TriStateBool_False False")
  128. cpp_quote("#define TriStateBool_True True")
  129. cpp_quote("#define TriStateBool_Default Default")
  130. cpp_quote("")
  131.  
  132.  
  133. [
  134.     uuid(73bf04d0-7c4f-4684-9abf-d65a9ad74343),
  135.     v1_enum
  136. ]
  137. typedef enum 
  138. {
  139.     InvalidMachineState = 0,
  140.     PoweredOff = 1,
  141.     Saved = 2,
  142.     Aborted = 3,
  143.     Running = 4,
  144.     Paused = 5,
  145.     Stuck = 6,
  146.     Starting = 7,
  147.     Stopping = 8,
  148.     Saving = 9,
  149.     Restoring = 10,
  150.     Discarding = 11
  151. } MachineState;
  152.  
  153. /* cross-platform type name for MachineState */
  154. cpp_quote("#define MachineState_T MachineState")
  155.  
  156. cpp_quote("")
  157. /* cross-platform constants for MachineState */
  158. cpp_quote("#define MachineState_InvalidMachineState InvalidMachineState")
  159. cpp_quote("#define MachineState_PoweredOff PoweredOff")
  160. cpp_quote("#define MachineState_Saved Saved")
  161. cpp_quote("#define MachineState_Aborted Aborted")
  162. cpp_quote("#define MachineState_Running Running")
  163. cpp_quote("#define MachineState_Paused Paused")
  164. cpp_quote("#define MachineState_Stuck Stuck")
  165. cpp_quote("#define MachineState_Starting Starting")
  166. cpp_quote("#define MachineState_Stopping Stopping")
  167. cpp_quote("#define MachineState_Saving Saving")
  168. cpp_quote("#define MachineState_Restoring Restoring")
  169. cpp_quote("#define MachineState_Discarding Discarding")
  170. cpp_quote("")
  171.  
  172.  
  173. [
  174.     uuid(CF2700C0-EA4B-47ae-9725-7810114B94D8),
  175.     v1_enum
  176. ]
  177. typedef enum 
  178. {
  179.     InvalidSessionState = 0,
  180.     SessionClosed = 1,
  181.     SessionOpen = 2,
  182.     SessionSpawning = 3,
  183.     SessionClosing = 4
  184. } SessionState;
  185.  
  186. /* cross-platform type name for SessionState */
  187. cpp_quote("#define SessionState_T SessionState")
  188.  
  189. cpp_quote("")
  190. /* cross-platform constants for SessionState */
  191. cpp_quote("#define SessionState_InvalidSessionState InvalidSessionState")
  192. cpp_quote("#define SessionState_SessionClosed SessionClosed")
  193. cpp_quote("#define SessionState_SessionOpen SessionOpen")
  194. cpp_quote("#define SessionState_SessionSpawning SessionSpawning")
  195. cpp_quote("#define SessionState_SessionClosing SessionClosing")
  196. cpp_quote("")
  197.  
  198.  
  199. [
  200.     uuid(A13C02CB-0C2C-421E-8317-AC0E8AAA153A),
  201.     v1_enum
  202. ]
  203. typedef enum 
  204. {
  205.     InvalidSessionType = 0,
  206.     DirectSession = 1,
  207.     RemoteSession = 2,
  208.     ExistingSession = 3
  209. } SessionType;
  210.  
  211. /* cross-platform type name for SessionType */
  212. cpp_quote("#define SessionType_T SessionType")
  213.  
  214. cpp_quote("")
  215. /* cross-platform constants for SessionType */
  216. cpp_quote("#define SessionType_InvalidSessionType InvalidSessionType")
  217. cpp_quote("#define SessionType_DirectSession DirectSession")
  218. cpp_quote("#define SessionType_RemoteSession RemoteSession")
  219. cpp_quote("#define SessionType_ExistingSession ExistingSession")
  220. cpp_quote("")
  221.  
  222.  
  223. [
  224.     uuid(6d9420f7-0b56-4636-99f9-7346f1b01e57),
  225.     v1_enum
  226. ]
  227. typedef enum 
  228. {
  229.     NoDevice = 0,
  230.     FloppyDevice = 1,
  231.     DVDDevice = 2,
  232.     HardDiskDevice = 3,
  233.     NetworkDevice = 4,
  234.     USBDevice = 5,
  235.     SharedFolderDevice = 6
  236. } DeviceType;
  237.  
  238. /* cross-platform type name for DeviceType */
  239. cpp_quote("#define DeviceType_T DeviceType")
  240.  
  241. cpp_quote("")
  242. /* cross-platform constants for DeviceType */
  243. cpp_quote("#define DeviceType_NoDevice NoDevice")
  244. cpp_quote("#define DeviceType_FloppyDevice FloppyDevice")
  245. cpp_quote("#define DeviceType_DVDDevice DVDDevice")
  246. cpp_quote("#define DeviceType_HardDiskDevice HardDiskDevice")
  247. cpp_quote("#define DeviceType_NetworkDevice NetworkDevice")
  248. cpp_quote("#define DeviceType_USBDevice USBDevice")
  249. cpp_quote("#define DeviceType_SharedFolderDevice SharedFolderDevice")
  250. cpp_quote("")
  251.  
  252.  
  253. [
  254.     uuid(6FC8AEAA-130A-4eb5-8954-3F921422D707),
  255.     v1_enum
  256. ]
  257. typedef enum 
  258. {
  259.     InvalidActivity = 0,
  260.     DeviceIdle = 1,
  261.     DeviceReading = 2,
  262.     DeviceWriting = 3
  263. } DeviceActivity;
  264.  
  265. /* cross-platform type name for DeviceActivity */
  266. cpp_quote("#define DeviceActivity_T DeviceActivity")
  267.  
  268. cpp_quote("")
  269. /* cross-platform constants for DeviceActivity */
  270. cpp_quote("#define DeviceActivity_InvalidActivity InvalidActivity")
  271. cpp_quote("#define DeviceActivity_DeviceIdle DeviceIdle")
  272. cpp_quote("#define DeviceActivity_DeviceReading DeviceReading")
  273. cpp_quote("#define DeviceActivity_DeviceWriting DeviceWriting")
  274. cpp_quote("")
  275.  
  276.  
  277. [
  278.     uuid(FC56E4B6-B195-48e2-A5E1-A667B0D9F809),
  279.     v1_enum
  280. ]
  281. typedef enum 
  282. {
  283.     InvalidUsage = 0,
  284.     PermanentUsage = 1,
  285.     TemporaryUsage = 2,
  286.     AllUsage = 3
  287. } ResourceUsage;
  288.  
  289. /* cross-platform type name for ResourceUsage */
  290. cpp_quote("#define ResourceUsage_T ResourceUsage")
  291.  
  292. cpp_quote("")
  293. /* cross-platform constants for ResourceUsage */
  294. cpp_quote("#define ResourceUsage_InvalidUsage InvalidUsage")
  295. cpp_quote("#define ResourceUsage_PermanentUsage PermanentUsage")
  296. cpp_quote("#define ResourceUsage_TemporaryUsage TemporaryUsage")
  297. cpp_quote("#define ResourceUsage_AllUsage AllUsage")
  298. cpp_quote("")
  299.  
  300.  
  301. [
  302.     uuid(1115b810-2ee7-4ebd-8b39-92e98c9a2b48),
  303.     v1_enum
  304. ]
  305. typedef enum 
  306. {
  307.     InvalidController = 0,
  308.     IDE0Controller = 1,
  309.     IDE1Controller = 2
  310. } DiskControllerType;
  311.  
  312. /* cross-platform type name for DiskControllerType */
  313. cpp_quote("#define DiskControllerType_T DiskControllerType")
  314.  
  315. cpp_quote("")
  316. /* cross-platform constants for DiskControllerType */
  317. cpp_quote("#define DiskControllerType_InvalidController InvalidController")
  318. cpp_quote("#define DiskControllerType_IDE0Controller IDE0Controller")
  319. cpp_quote("#define DiskControllerType_IDE1Controller IDE1Controller")
  320. cpp_quote("")
  321.  
  322.  
  323. [
  324.     uuid(33364716-4008-4701-8f14-be0fa3d62950),
  325.     v1_enum
  326. ]
  327. typedef enum 
  328. {
  329.     ClipDisabled = 0,
  330.     ClipHostToGuest = 1,
  331.     ClipGuestToHost = 2,
  332.     ClipBidirectional = 3
  333. } ClipboardMode;
  334.  
  335. /* cross-platform type name for ClipboardMode */
  336. cpp_quote("#define ClipboardMode_T ClipboardMode")
  337.  
  338. cpp_quote("")
  339. /* cross-platform constants for ClipboardMode */
  340. cpp_quote("#define ClipboardMode_ClipDisabled ClipDisabled")
  341. cpp_quote("#define ClipboardMode_ClipHostToGuest ClipHostToGuest")
  342. cpp_quote("#define ClipboardMode_ClipGuestToHost ClipGuestToHost")
  343. cpp_quote("#define ClipboardMode_ClipBidirectional ClipBidirectional")
  344. cpp_quote("")
  345.  
  346.  
  347. [
  348.     uuid(7c91096e-499e-4eca-9f9b-9001438d7855),
  349.     v1_enum
  350. ]
  351. typedef enum 
  352. {
  353.     GlobalScope = 0,
  354.     MachineScope = 1,
  355.     SessionScope = 2
  356. } Scope;
  357.  
  358. /* cross-platform type name for Scope */
  359. cpp_quote("#define Scope_T Scope")
  360.  
  361. cpp_quote("")
  362. /* cross-platform constants for Scope */
  363. cpp_quote("#define Scope_GlobalScope GlobalScope")
  364. cpp_quote("#define Scope_MachineScope MachineScope")
  365. cpp_quote("#define Scope_SessionScope SessionScope")
  366. cpp_quote("")
  367.  
  368.  
  369. [
  370.     uuid(da89a1b7-e602-45ac-84b7-29c9d12b92d5),
  371.     v1_enum
  372. ]
  373. typedef enum 
  374. {
  375.     CPULoad = 0,
  376.     Threads = 1,
  377.     Processes = 2,
  378.     PhysMemTotal = 3,
  379.     PhysMemAvailable = 4,
  380.     PageFileSize = 5
  381. } GuestStatisticType;
  382.  
  383. /* cross-platform type name for GuestStatisticType */
  384. cpp_quote("#define GuestStatisticType_T GuestStatisticType")
  385.  
  386. cpp_quote("")
  387. /* cross-platform constants for GuestStatisticType */
  388. cpp_quote("#define GuestStatisticType_CPULoad CPULoad")
  389. cpp_quote("#define GuestStatisticType_Threads Threads")
  390. cpp_quote("#define GuestStatisticType_Processes Processes")
  391. cpp_quote("#define GuestStatisticType_PhysMemTotal PhysMemTotal")
  392. cpp_quote("#define GuestStatisticType_PhysMemAvailable PhysMemAvailable")
  393. cpp_quote("#define GuestStatisticType_PageFileSize PageFileSize")
  394. cpp_quote("")
  395.  
  396.  
  397. [
  398.     uuid(ae4fb9f7-29d2-45b4-b2c7-d579603135d5),
  399.     v1_enum
  400. ]
  401. typedef enum 
  402. {
  403.     Disabled = 0,
  404.     MenuOnly = 1,
  405.     MessageAndMenu = 2
  406. } BIOSBootMenuMode;
  407.  
  408. /* cross-platform type name for BIOSBootMenuMode */
  409. cpp_quote("#define BIOSBootMenuMode_T BIOSBootMenuMode")
  410.  
  411. cpp_quote("")
  412. /* cross-platform constants for BIOSBootMenuMode */
  413. cpp_quote("#define BIOSBootMenuMode_Disabled Disabled")
  414. cpp_quote("#define BIOSBootMenuMode_MenuOnly MenuOnly")
  415. cpp_quote("#define BIOSBootMenuMode_MessageAndMenu MessageAndMenu")
  416. cpp_quote("")
  417.  
  418.  
  419. [
  420.     uuid(48138584-ad99-479d-a36f-eb82a7663685),
  421.     v1_enum
  422. ]
  423. typedef enum 
  424. {
  425.     VirtualDiskImage = 0,
  426.     ISCSIHardDisk = 1,
  427.     VMDKImage = 2
  428. } HardDiskStorageType;
  429.  
  430. /* cross-platform type name for HardDiskStorageType */
  431. cpp_quote("#define HardDiskStorageType_T HardDiskStorageType")
  432.  
  433. cpp_quote("")
  434. /* cross-platform constants for HardDiskStorageType */
  435. cpp_quote("#define HardDiskStorageType_VirtualDiskImage VirtualDiskImage")
  436. cpp_quote("#define HardDiskStorageType_ISCSIHardDisk ISCSIHardDisk")
  437. cpp_quote("#define HardDiskStorageType_VMDKImage VMDKImage")
  438. cpp_quote("")
  439.  
  440.  
  441. [
  442.     uuid(a348fafd-a64e-4643-ba65-eb3896bd7e0a),
  443.     v1_enum
  444. ]
  445. typedef enum 
  446. {
  447.     NormalHardDisk = 0,
  448.     ImmutableHardDisk = 1,
  449.     WritethroughHardDisk = 2
  450. } HardDiskType;
  451.  
  452. /* cross-platform type name for HardDiskType */
  453. cpp_quote("#define HardDiskType_T HardDiskType")
  454.  
  455. cpp_quote("")
  456. /* cross-platform constants for HardDiskType */
  457. cpp_quote("#define HardDiskType_NormalHardDisk NormalHardDisk")
  458. cpp_quote("#define HardDiskType_ImmutableHardDisk ImmutableHardDisk")
  459. cpp_quote("#define HardDiskType_WritethroughHardDisk WritethroughHardDisk")
  460. cpp_quote("")
  461.  
  462.  
  463. [
  464.     uuid(cb7233b7-c519-42a5-8310-1830953cacbc),
  465.     v1_enum
  466. ]
  467. typedef enum 
  468. {
  469.     InvalidDriveState = 0,
  470.     NotMounted = 1,
  471.     ImageMounted = 2,
  472.     HostDriveCaptured = 3
  473. } DriveState;
  474.  
  475. /* cross-platform type name for DriveState */
  476. cpp_quote("#define DriveState_T DriveState")
  477.  
  478. cpp_quote("")
  479. /* cross-platform constants for DriveState */
  480. cpp_quote("#define DriveState_InvalidDriveState InvalidDriveState")
  481. cpp_quote("#define DriveState_NotMounted NotMounted")
  482. cpp_quote("#define DriveState_ImageMounted ImageMounted")
  483. cpp_quote("#define DriveState_HostDriveCaptured HostDriveCaptured")
  484. cpp_quote("")
  485.  
  486.  
  487. [
  488.     uuid(03131722-2EC5-4173-9794-0DACA46673EF),
  489.     v1_enum
  490. ]
  491. typedef enum 
  492. {
  493.     LeftButton = 0x01,
  494.     RightButton = 0x02,
  495.     MiddleButton = 0x04,
  496.     WheelUp = 0x08,
  497.     WheelDown = 0x10,
  498.     MouseStateMask = 0x1F
  499. } MouseButtonState;
  500.  
  501. /* cross-platform type name for MouseButtonState */
  502. cpp_quote("#define MouseButtonState_T MouseButtonState")
  503.  
  504. cpp_quote("")
  505. /* cross-platform constants for MouseButtonState */
  506. cpp_quote("#define MouseButtonState_LeftButton LeftButton")
  507. cpp_quote("#define MouseButtonState_RightButton RightButton")
  508. cpp_quote("#define MouseButtonState_MiddleButton MiddleButton")
  509. cpp_quote("#define MouseButtonState_WheelUp WheelUp")
  510. cpp_quote("#define MouseButtonState_WheelDown WheelDown")
  511. cpp_quote("#define MouseButtonState_MouseStateMask MouseStateMask")
  512. cpp_quote("")
  513.  
  514.  
  515. [
  516.     uuid(f0e5ebbe-dc8e-4e2d-916e-53baa3844df8),
  517.     v1_enum
  518. ]
  519. typedef enum 
  520. {
  521.     SolidFillAcceleration = 1,
  522.     ScreenCopyAcceleration = 2
  523. } FramebufferAccelerationOperation;
  524.  
  525. /* cross-platform type name for FramebufferAccelerationOperation */
  526. cpp_quote("#define FramebufferAccelerationOperation_T FramebufferAccelerationOperation")
  527.  
  528. cpp_quote("")
  529. /* cross-platform constants for FramebufferAccelerationOperation */
  530. cpp_quote("#define FramebufferAccelerationOperation_SolidFillAcceleration SolidFillAcceleration")
  531. cpp_quote("#define FramebufferAccelerationOperation_ScreenCopyAcceleration ScreenCopyAcceleration")
  532. cpp_quote("")
  533.  
  534.  
  535. [
  536.     uuid(6b27d1fc-4f2c-4e9c-a166-01d06540305d),
  537.     v1_enum
  538. ]
  539. typedef enum 
  540. {
  541.     PixelFormatOpaque = 0xFFFFFFFF,
  542.     FOURCC_RGB = 0x32424752
  543. } FramebufferPixelFormat;
  544.  
  545. /* cross-platform type name for FramebufferPixelFormat */
  546. cpp_quote("#define FramebufferPixelFormat_T FramebufferPixelFormat")
  547.  
  548. cpp_quote("")
  549. /* cross-platform constants for FramebufferPixelFormat */
  550. cpp_quote("#define FramebufferPixelFormat_PixelFormatOpaque PixelFormatOpaque")
  551. cpp_quote("#define FramebufferPixelFormat_FOURCC_RGB FOURCC_RGB")
  552. cpp_quote("")
  553.  
  554.  
  555. [
  556.     uuid(8730d899-d036-4925-bc63-e58f3486f4bf),
  557.     v1_enum
  558. ]
  559. typedef enum 
  560. {
  561.     NoNetworkAttachment = 0,
  562.     NATNetworkAttachment = 1,
  563.     HostInterfaceNetworkAttachment = 2,
  564.     InternalNetworkAttachment = 3
  565. } NetworkAttachmentType;
  566.  
  567. /* cross-platform type name for NetworkAttachmentType */
  568. cpp_quote("#define NetworkAttachmentType_T NetworkAttachmentType")
  569.  
  570. cpp_quote("")
  571. /* cross-platform constants for NetworkAttachmentType */
  572. cpp_quote("#define NetworkAttachmentType_NoNetworkAttachment NoNetworkAttachment")
  573. cpp_quote("#define NetworkAttachmentType_NATNetworkAttachment NATNetworkAttachment")
  574. cpp_quote("#define NetworkAttachmentType_HostInterfaceNetworkAttachment HostInterfaceNetworkAttachment")
  575. cpp_quote("#define NetworkAttachmentType_InternalNetworkAttachment InternalNetworkAttachment")
  576. cpp_quote("")
  577.  
  578.  
  579. [
  580.     uuid(156b17b9-5d61-4d54-be90-62e37dda848d),
  581.     v1_enum
  582. ]
  583. typedef enum 
  584. {
  585.     InvalidNetworkAdapterType = 0,
  586.     NetworkAdapterAm79C970A = 1,
  587.     NetworkAdapterAm79C973 = 2
  588. } NetworkAdapterType;
  589.  
  590. /* cross-platform type name for NetworkAdapterType */
  591. cpp_quote("#define NetworkAdapterType_T NetworkAdapterType")
  592.  
  593. cpp_quote("")
  594. /* cross-platform constants for NetworkAdapterType */
  595. cpp_quote("#define NetworkAdapterType_InvalidNetworkAdapterType InvalidNetworkAdapterType")
  596. cpp_quote("#define NetworkAdapterType_NetworkAdapterAm79C970A NetworkAdapterAm79C970A")
  597. cpp_quote("#define NetworkAdapterType_NetworkAdapterAm79C973 NetworkAdapterAm79C973")
  598. cpp_quote("")
  599.  
  600.  
  601. [
  602.     uuid(b266f43c-2e93-46b3-812b-c20e600e867b),
  603.     v1_enum
  604. ]
  605. typedef enum 
  606. {
  607.     DisconnectedPort = 0,
  608.     HostPipePort = 1,
  609.     HostDevicePort = 2
  610. } PortMode;
  611.  
  612. /* cross-platform type name for PortMode */
  613. cpp_quote("#define PortMode_T PortMode")
  614.  
  615. cpp_quote("")
  616. /* cross-platform constants for PortMode */
  617. cpp_quote("#define PortMode_DisconnectedPort DisconnectedPort")
  618. cpp_quote("#define PortMode_HostPipePort HostPipePort")
  619. cpp_quote("#define PortMode_HostDevicePort HostDevicePort")
  620. cpp_quote("")
  621.  
  622.  
  623. [
  624.     uuid(b99a2e65-67fb-4882-82fd-f3e5e8193ab4),
  625.     v1_enum
  626. ]
  627. typedef enum 
  628. {
  629.     USBDeviceNotSupported = 0,
  630.     USBDeviceUnavailable = 1,
  631.     USBDeviceBusy = 2,
  632.     USBDeviceAvailable = 3,
  633.     USBDeviceHeld = 4,
  634.     USBDeviceCaptured = 5
  635. } USBDeviceState;
  636.  
  637. /* cross-platform type name for USBDeviceState */
  638. cpp_quote("#define USBDeviceState_T USBDeviceState")
  639.  
  640. cpp_quote("")
  641. /* cross-platform constants for USBDeviceState */
  642. cpp_quote("#define USBDeviceState_USBDeviceNotSupported USBDeviceNotSupported")
  643. cpp_quote("#define USBDeviceState_USBDeviceUnavailable USBDeviceUnavailable")
  644. cpp_quote("#define USBDeviceState_USBDeviceBusy USBDeviceBusy")
  645. cpp_quote("#define USBDeviceState_USBDeviceAvailable USBDeviceAvailable")
  646. cpp_quote("#define USBDeviceState_USBDeviceHeld USBDeviceHeld")
  647. cpp_quote("#define USBDeviceState_USBDeviceCaptured USBDeviceCaptured")
  648. cpp_quote("")
  649.  
  650.  
  651. [
  652.     uuid(cbc30a49-2f4e-43b5-9da6-121320475933),
  653.     v1_enum
  654. ]
  655. typedef enum 
  656. {
  657.     InvalidUSBDeviceFilterAction = 0,
  658.     USBDeviceFilterIgnore = 1,
  659.     USBDeviceFilterHold = 2
  660. } USBDeviceFilterAction;
  661.  
  662. /* cross-platform type name for USBDeviceFilterAction */
  663. cpp_quote("#define USBDeviceFilterAction_T USBDeviceFilterAction")
  664.  
  665. cpp_quote("")
  666. /* cross-platform constants for USBDeviceFilterAction */
  667. cpp_quote("#define USBDeviceFilterAction_InvalidUSBDeviceFilterAction InvalidUSBDeviceFilterAction")
  668. cpp_quote("#define USBDeviceFilterAction_USBDeviceFilterIgnore USBDeviceFilterIgnore")
  669. cpp_quote("#define USBDeviceFilterAction_USBDeviceFilterHold USBDeviceFilterHold")
  670. cpp_quote("")
  671.  
  672.  
  673. [
  674.     uuid(4bcc3d73-c2fe-40db-b72f-0c2ca9d68496),
  675.     v1_enum
  676. ]
  677. typedef enum 
  678. {
  679.     NullAudioDriver = 0,
  680.     WINMMAudioDriver = 1,
  681.     OSSAudioDriver = 2,
  682.     ALSAAudioDriver = 3,
  683.     DSOUNDAudioDriver = 4,
  684.     CoreAudioDriver = 5,
  685.     MMPMAudioDriver = 6,
  686.     PulseAudioDriver = 7
  687. } AudioDriverType;
  688.  
  689. /* cross-platform type name for AudioDriverType */
  690. cpp_quote("#define AudioDriverType_T AudioDriverType")
  691.  
  692. cpp_quote("")
  693. /* cross-platform constants for AudioDriverType */
  694. cpp_quote("#define AudioDriverType_NullAudioDriver NullAudioDriver")
  695. cpp_quote("#define AudioDriverType_WINMMAudioDriver WINMMAudioDriver")
  696. cpp_quote("#define AudioDriverType_OSSAudioDriver OSSAudioDriver")
  697. cpp_quote("#define AudioDriverType_ALSAAudioDriver ALSAAudioDriver")
  698. cpp_quote("#define AudioDriverType_DSOUNDAudioDriver DSOUNDAudioDriver")
  699. cpp_quote("#define AudioDriverType_CoreAudioDriver CoreAudioDriver")
  700. cpp_quote("#define AudioDriverType_MMPMAudioDriver MMPMAudioDriver")
  701. cpp_quote("#define AudioDriverType_PulseAudioDriver PulseAudioDriver")
  702. cpp_quote("")
  703.  
  704.  
  705. [
  706.     uuid(3d91887a-b67f-4b33-85bf-2da7ab1ea83a),
  707.     v1_enum
  708. ]
  709. typedef enum 
  710. {
  711.     VRDPAuthNull = 0,
  712.     VRDPAuthExternal = 1,
  713.     VRDPAuthGuest = 2
  714. } VRDPAuthType;
  715.  
  716. /* cross-platform type name for VRDPAuthType */
  717. cpp_quote("#define VRDPAuthType_T VRDPAuthType")
  718.  
  719. cpp_quote("")
  720. /* cross-platform constants for VRDPAuthType */
  721. cpp_quote("#define VRDPAuthType_VRDPAuthNull VRDPAuthNull")
  722. cpp_quote("#define VRDPAuthType_VRDPAuthExternal VRDPAuthExternal")
  723. cpp_quote("#define VRDPAuthType_VRDPAuthGuest VRDPAuthGuest")
  724. cpp_quote("")
  725.  
  726.  
  727. [
  728.     uuid(e98b5376-8eb4-4eea-812a-3964bf3bb26f),
  729.     object,
  730.     dual
  731. ]
  732. interface IVirtualBoxErrorInfo : IErrorInfo
  733. {
  734.     [propget] HRESULT ResultCode ([out, retval] HRESULT * aResultCode);
  735.  
  736.     [propget] HRESULT InterfaceID ([out, retval] GUID * aInterfaceID);
  737.  
  738.     [propget] HRESULT Component ([out, retval] BSTR * aComponent);
  739.  
  740.     [propget] HRESULT Text ([out, retval] BSTR * aText);
  741.  
  742.     [propget] HRESULT Next ([out, retval] IVirtualBoxErrorInfo * * aNext);
  743.  
  744. }; /* interface IVirtualBoxErrorInfo */
  745.  
  746. [
  747.     uuid(ee95ffc2-b6c6-4ce8-9e9e-ceadbb5019fe),
  748.     object,
  749.     dual
  750. ]
  751. interface IVirtualBoxCallback : IUnknown
  752. {
  753.     HRESULT OnMachineStateChange (
  754.         [in] GUID aMachineId,
  755.         [in] MachineState aState
  756.     );
  757.  
  758.     HRESULT OnMachineDataChange (
  759.         [in] GUID aMachineId
  760.     );
  761.  
  762.     HRESULT OnExtraDataCanChange (
  763.         [in] GUID aMachineId,
  764.         [in] BSTR aKey,
  765.         [in] BSTR aValue,
  766.         [out] BSTR * aError,
  767.         [out, retval] BOOL * aAllowChange
  768.     );
  769.  
  770.     HRESULT OnExtraDataChange (
  771.         [in] GUID aMachineId,
  772.         [in] BSTR aKey,
  773.         [in] BSTR aValue
  774.     );
  775.  
  776.     HRESULT OnMediaRegistered (
  777.         [in] GUID aMediaId,
  778.         [in] DeviceType aMediaType,
  779.         [in] BOOL aRegistered
  780.     );
  781.  
  782.     HRESULT OnMachineRegistered (
  783.         [in] GUID aMachineId,
  784.         [in] BOOL aRegistered
  785.     );
  786.  
  787.     HRESULT OnSessionStateChange (
  788.         [in] GUID aMachineId,
  789.         [in] SessionState aState
  790.     );
  791.  
  792.     HRESULT OnSnapshotTaken (
  793.         [in] GUID aMachineId,
  794.         [in] GUID aSnapshotId
  795.     );
  796.  
  797.     HRESULT OnSnapshotDiscarded (
  798.         [in] GUID aMachineId,
  799.         [in] GUID aSnapshotId
  800.     );
  801.  
  802.     HRESULT OnSnapshotChange (
  803.         [in] GUID aMachineId,
  804.         [in] GUID aSnapshotId
  805.     );
  806.  
  807. }; /* interface IVirtualBoxCallback */
  808.  
  809. [
  810.     uuid(76b25f3c-15d4-4785-a9d3-adc6a462beec),
  811.     object,
  812.     dual
  813. ]
  814. interface IVirtualBox : IDispatch
  815. {
  816.     [propget] HRESULT Version ([out, retval] BSTR * aVersion);
  817.  
  818.     [propget] HRESULT HomeFolder ([out, retval] BSTR * aHomeFolder);
  819.  
  820.     [propget] HRESULT Host ([out, retval] IHost * * aHost);
  821.  
  822.     [propget] HRESULT SystemProperties ([out, retval] ISystemProperties * * aSystemProperties);
  823.  
  824.     [propget] HRESULT Machines ([out, retval] IMachineCollection * * aMachines);
  825.  
  826.     [propget] HRESULT HardDisks ([out, retval] IHardDiskCollection * * aHardDisks);
  827.  
  828.     [propget] HRESULT DVDImages ([out, retval] IDVDImageCollection * * aDVDImages);
  829.  
  830.     [propget] HRESULT FloppyImages ([out, retval] IFloppyImageCollection * * aFloppyImages);
  831.  
  832.     [propget] HRESULT ProgressOperations ([out, retval] IProgressCollection * * aProgressOperations);
  833.  
  834.     [propget] HRESULT GuestOSTypes ([out, retval] IGuestOSTypeCollection * * aGuestOSTypes);
  835.  
  836.     [propget] HRESULT SharedFolders ([out, retval] ISharedFolderCollection * * aSharedFolders);
  837.  
  838.     HRESULT CreateMachine (
  839.         [in] BSTR aBaseFolder,
  840.         [in] BSTR aName,
  841.         [out, retval] IMachine * * aMachine
  842.     );
  843.  
  844.     HRESULT CreateLegacyMachine (
  845.         [in] BSTR aSettingsFile,
  846.         [in] BSTR aName,
  847.         [out, retval] IMachine * * aMachine
  848.     );
  849.  
  850.     HRESULT OpenMachine (
  851.         [in] BSTR aSettingsFile,
  852.         [out, retval] IMachine * * aMachine
  853.     );
  854.  
  855.     HRESULT RegisterMachine (
  856.         [in] IMachine * aMachine
  857.     );
  858.  
  859.     HRESULT GetMachine (
  860.         [in] GUID aId,
  861.         [out, retval] IMachine * * aMachine
  862.     );
  863.  
  864.     HRESULT FindMachine (
  865.         [in] BSTR aName,
  866.         [out, retval] IMachine * * aMachine
  867.     );
  868.  
  869.     HRESULT UnregisterMachine (
  870.         [in] GUID aId,
  871.         [out, retval] IMachine * * aMachine
  872.     );
  873.  
  874.     HRESULT CreateHardDisk (
  875.         [in] HardDiskStorageType aStorageType,
  876.         [out, retval] IHardDisk * * aHardDisk
  877.     );
  878.  
  879.     HRESULT OpenHardDisk (
  880.         [in] BSTR aLocation,
  881.         [out, retval] IHardDisk * * aHardDisk
  882.     );
  883.  
  884.     HRESULT OpenVirtualDiskImage (
  885.         [in] BSTR aFilePath,
  886.         [out, retval] IVirtualDiskImage * * aImage
  887.     );
  888.  
  889.     HRESULT RegisterHardDisk (
  890.         [in] IHardDisk * aHardDisk
  891.     );
  892.  
  893.     HRESULT GetHardDisk (
  894.         [in] GUID aId,
  895.         [out, retval] IHardDisk * * aHardDisk
  896.     );
  897.  
  898.     HRESULT FindHardDisk (
  899.         [in] BSTR aLocation,
  900.         [out, retval] IHardDisk * * aHardDisk
  901.     );
  902.  
  903.     HRESULT FindVirtualDiskImage (
  904.         [in] BSTR aFilePath,
  905.         [out, retval] IVirtualDiskImage * * aImage
  906.     );
  907.  
  908.     HRESULT UnregisterHardDisk (
  909.         [in] GUID aId,
  910.         [out, retval] IHardDisk * * aHardDisk
  911.     );
  912.  
  913.     HRESULT OpenDVDImage (
  914.         [in] BSTR aFilePath,
  915.         [in] GUID aId,
  916.         [out, retval] IDVDImage * * aImage
  917.     );
  918.  
  919.     HRESULT RegisterDVDImage (
  920.         [in] IDVDImage * aImage
  921.     );
  922.  
  923.     HRESULT GetDVDImage (
  924.         [in] GUID aId,
  925.         [out, retval] IDVDImage * * aImage
  926.     );
  927.  
  928.     HRESULT FindDVDImage (
  929.         [in] BSTR aFilePath,
  930.         [out, retval] IDVDImage * * aImage
  931.     );
  932.  
  933.     HRESULT GetDVDImageUsage (
  934.         [in] GUID aId,
  935.         [in] ResourceUsage aUsage,
  936.         [out, retval] BSTR * aMachineIDs
  937.     );
  938.  
  939.     HRESULT UnregisterDVDImage (
  940.         [in] GUID aId,
  941.         [out, retval] IDVDImage * * aImage
  942.     );
  943.  
  944.     HRESULT OpenFloppyImage (
  945.         [in] BSTR aFilePath,
  946.         [in] GUID aId,
  947.         [out, retval] IFloppyImage * * aImage
  948.     );
  949.  
  950.     HRESULT RegisterFloppyImage (
  951.         [in] IFloppyImage * aImage
  952.     );
  953.  
  954.     HRESULT GetFloppyImage (
  955.         [in] GUID aId,
  956.         [out, retval] IFloppyImage * * aImage
  957.     );
  958.  
  959.     HRESULT FindFloppyImage (
  960.         [in] BSTR aFilePath,
  961.         [out, retval] IFloppyImage * * aImage
  962.     );
  963.  
  964.     HRESULT GetFloppyImageUsage (
  965.         [in] GUID aId,
  966.         [in] ResourceUsage aUsage,
  967.         [out, retval] BSTR * aMachineIDs
  968.     );
  969.  
  970.     HRESULT UnregisterFloppyImage (
  971.         [in] GUID aId,
  972.         [out, retval] IFloppyImage * * aImage
  973.     );
  974.  
  975.     HRESULT GetGuestOSType (
  976.         [in] BSTR aId,
  977.         [out, retval] IGuestOSType * * aType
  978.     );
  979.  
  980.     HRESULT CreateSharedFolder (
  981.         [in] BSTR aName,
  982.         [in] BSTR aHostPath
  983.     );
  984.  
  985.     HRESULT RemoveSharedFolder (
  986.         [in] BSTR aName
  987.     );
  988.  
  989.     HRESULT GetNextExtraDataKey (
  990.         [in] BSTR aKey,
  991.         [out] BSTR * aNextKey,
  992.         [out] BSTR * aNextValue
  993.     );
  994.  
  995.     HRESULT GetExtraData (
  996.         [in] BSTR aKey,
  997.         [out, retval] BSTR * aValue
  998.     );
  999.  
  1000.     HRESULT SetExtraData (
  1001.         [in] BSTR aKey,
  1002.         [in] BSTR aValue
  1003.     );
  1004.  
  1005.     HRESULT OpenSession (
  1006.         [in] ISession * aSession,
  1007.         [in] GUID aMachineId
  1008.     );
  1009.  
  1010.     HRESULT OpenRemoteSession (
  1011.         [in] ISession * aSession,
  1012.         [in] GUID aMachineId,
  1013.         [in] BSTR aType,
  1014.         [in] BSTR aEnvironment,
  1015.         [out, retval] IProgress * * aProgress
  1016.     );
  1017.  
  1018.     HRESULT OpenExistingSession (
  1019.         [in] ISession * aSession,
  1020.         [in] GUID aMachineId
  1021.     );
  1022.  
  1023.     HRESULT RegisterCallback (
  1024.         [in] IVirtualBoxCallback * aCallback
  1025.     );
  1026.  
  1027.     HRESULT UnregisterCallback (
  1028.         [in] IVirtualBoxCallback * aCallback
  1029.     );
  1030.  
  1031. }; /* interface IVirtualBox */
  1032.  
  1033. [
  1034.     uuid(1b554149-be0a-4465-9252-9ff8f420af55),
  1035.     object,
  1036.     dual
  1037. ]
  1038. interface IMachineEnumerator : IUnknown
  1039. {
  1040.     HRESULT HasMore ([out, retval] BOOL * more);
  1041.  
  1042.     HRESULT GetNext ([out, retval] IMachine * * next);
  1043.  
  1044.  
  1045. }; /* interface IMachineEnumerator */
  1046.  
  1047. [
  1048.     uuid(FD443EC1-3007-4F5B-9282-D72760A66916),
  1049.     object,
  1050.     dual
  1051. ]
  1052. interface IMachineCollection : IUnknown
  1053. {
  1054.     [propget] HRESULT Count ([out, retval] ULONG * count);
  1055.  
  1056.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IMachine * * item);
  1057.  
  1058.     HRESULT Enumerate ([out, retval] IMachineEnumerator * * enumerator);
  1059.  
  1060.  
  1061. }; /* interface IMachineCollection */
  1062.  
  1063. [
  1064.     uuid(454d1ff9-7257-40d6-9d7a-1ed8b8c871b2),
  1065.     object,
  1066.     dual
  1067. ]
  1068. interface IInternalMachineControl : IUnknown
  1069. {
  1070.     HRESULT UpdateState (
  1071.         [in] MachineState aState
  1072.     );
  1073.  
  1074.     HRESULT GetIPCId (
  1075.         [out, retval] BSTR * aId
  1076.     );
  1077.  
  1078.     HRESULT RunUSBDeviceFilters (
  1079.         [in] IUSBDevice * aDevice,
  1080.         [out] BOOL * aMatched,
  1081.         [out] ULONG * aMaskedInterfaces
  1082.     );
  1083.  
  1084.     HRESULT CaptureUSBDevice (
  1085.         [in] GUID aId
  1086.     );
  1087.  
  1088.     HRESULT DetachUSBDevice (
  1089.         [in] GUID aId,
  1090.         [in] BOOL aDone
  1091.     );
  1092.  
  1093.     HRESULT AutoCaptureUSBDevices();
  1094.  
  1095.     HRESULT DetachAllUSBDevices (
  1096.         [in] BOOL aDone
  1097.     );
  1098.  
  1099.     HRESULT OnSessionEnd (
  1100.         [in] ISession * aSession,
  1101.         [out, retval] IProgress * * aProgress
  1102.     );
  1103.  
  1104.     HRESULT BeginSavingState (
  1105.         [in] IProgress * aProgress,
  1106.         [out] BSTR * aStateFilePath
  1107.     );
  1108.  
  1109.     HRESULT EndSavingState (
  1110.         [in] BOOL aSuccess
  1111.     );
  1112.  
  1113.     HRESULT BeginTakingSnapshot (
  1114.         [in] IConsole * aInitiator,
  1115.         [in] BSTR aName,
  1116.         [in] BSTR aDescription,
  1117.         [in] IProgress * aProgress,
  1118.         [out] BSTR * aStateFilePath,
  1119.         [out] IProgress * * aServerProgress
  1120.     );
  1121.  
  1122.     HRESULT EndTakingSnapshot (
  1123.         [in] BOOL aSuccess
  1124.     );
  1125.  
  1126.     HRESULT DiscardSnapshot (
  1127.         [in] IConsole * aInitiator,
  1128.         [in] GUID aId,
  1129.         [out] MachineState * aMachineState,
  1130.         [out, retval] IProgress * * aProgress
  1131.     );
  1132.  
  1133.     HRESULT DiscardCurrentState (
  1134.         [in] IConsole * aInitiator,
  1135.         [out] MachineState * aMachineState,
  1136.         [out, retval] IProgress * * aProgress
  1137.     );
  1138.  
  1139.     HRESULT DiscardCurrentSnapshotAndState (
  1140.         [in] IConsole * aInitiator,
  1141.         [out] MachineState * aMachineState,
  1142.         [out, retval] IProgress * * aProgress
  1143.     );
  1144.  
  1145. }; /* interface IInternalMachineControl */
  1146.  
  1147. [
  1148.     uuid(38b54279-dc35-4f5e-a431-835b867c6b5e),
  1149.     object,
  1150.     dual
  1151. ]
  1152. interface IBIOSSettings : IUnknown
  1153. {
  1154.     [propget] HRESULT LogoFadeIn ([out, retval] BOOL * aLogoFadeIn);
  1155.     [propput] HRESULT LogoFadeIn ([in] BOOL aLogoFadeIn);
  1156.  
  1157.     [propget] HRESULT LogoFadeOut ([out, retval] BOOL * aLogoFadeOut);
  1158.     [propput] HRESULT LogoFadeOut ([in] BOOL aLogoFadeOut);
  1159.  
  1160.     [propget] HRESULT LogoDisplayTime ([out, retval] ULONG * aLogoDisplayTime);
  1161.     [propput] HRESULT LogoDisplayTime ([in] ULONG aLogoDisplayTime);
  1162.  
  1163.     [propget] HRESULT LogoImagePath ([out, retval] BSTR * aLogoImagePath);
  1164.     [propput] HRESULT LogoImagePath ([in] BSTR aLogoImagePath);
  1165.  
  1166.     [propget] HRESULT BootMenuMode ([out, retval] BIOSBootMenuMode * aBootMenuMode);
  1167.     [propput] HRESULT BootMenuMode ([in] BIOSBootMenuMode aBootMenuMode);
  1168.  
  1169.     [propget] HRESULT ACPIEnabled ([out, retval] BOOL * aACPIEnabled);
  1170.     [propput] HRESULT ACPIEnabled ([in] BOOL aACPIEnabled);
  1171.  
  1172.     [propget] HRESULT IOAPICEnabled ([out, retval] BOOL * aIOAPICEnabled);
  1173.     [propput] HRESULT IOAPICEnabled ([in] BOOL aIOAPICEnabled);
  1174.  
  1175.     [propget] HRESULT TimeOffset ([out, retval] LONG64 * aTimeOffset);
  1176.     [propput] HRESULT TimeOffset ([in] LONG64 aTimeOffset);
  1177.  
  1178.     [propget] HRESULT PXEDebugEnabled ([out, retval] BOOL * aPXEDebugEnabled);
  1179.     [propput] HRESULT PXEDebugEnabled ([in] BOOL aPXEDebugEnabled);
  1180.  
  1181. }; /* interface IBIOSSettings */
  1182.  
  1183. [
  1184.     uuid(31f7169f-14da-4c55-8cb6-a3665186e35e),
  1185.     object,
  1186.     dual
  1187. ]
  1188. interface IMachine : IUnknown
  1189. {
  1190.     [propget] HRESULT Parent ([out, retval] IVirtualBox * * aParent);
  1191.  
  1192.     [propget] HRESULT Accessible ([out, retval] BOOL * aAccessible);
  1193.  
  1194.     [propget] HRESULT AccessError ([out, retval] IVirtualBoxErrorInfo * * aAccessError);
  1195.  
  1196.     [propget] HRESULT Name ([out, retval] BSTR * aName);
  1197.     [propput] HRESULT Name ([in] BSTR aName);
  1198.  
  1199.     [propget] HRESULT Description ([out, retval] BSTR * aDescription);
  1200.     [propput] HRESULT Description ([in] BSTR aDescription);
  1201.  
  1202.     [propget] HRESULT Id ([out, retval] GUID * aId);
  1203.  
  1204.     [propget] HRESULT OSTypeId ([out, retval] BSTR * aOSTypeId);
  1205.     [propput] HRESULT OSTypeId ([in] BSTR aOSTypeId);
  1206.  
  1207.     [propget] HRESULT MemorySize ([out, retval] ULONG * aMemorySize);
  1208.     [propput] HRESULT MemorySize ([in] ULONG aMemorySize);
  1209.  
  1210.     [propget] HRESULT VRAMSize ([out, retval] ULONG * aVRAMSize);
  1211.     [propput] HRESULT VRAMSize ([in] ULONG aVRAMSize);
  1212.  
  1213.     [propget] HRESULT MonitorCount ([out, retval] ULONG * aMonitorCount);
  1214.     [propput] HRESULT MonitorCount ([in] ULONG aMonitorCount);
  1215.  
  1216.     [propget] HRESULT BIOSSettings ([out, retval] IBIOSSettings * * aBIOSSettings);
  1217.  
  1218.     [propget] HRESULT HWVirtExEnabled ([out, retval] TriStateBool * aHWVirtExEnabled);
  1219.     [propput] HRESULT HWVirtExEnabled ([in] TriStateBool aHWVirtExEnabled);
  1220.  
  1221.     [propget] HRESULT SnapshotFolder ([out, retval] BSTR * aSnapshotFolder);
  1222.     [propput] HRESULT SnapshotFolder ([in] BSTR aSnapshotFolder);
  1223.  
  1224.     [propget] HRESULT VRDPServer ([out, retval] IVRDPServer * * aVRDPServer);
  1225.  
  1226.     [propget] HRESULT HardDiskAttachments ([out, retval] IHardDiskAttachmentCollection * * aHardDiskAttachments);
  1227.  
  1228.     [propget] HRESULT DVDDrive ([out, retval] IDVDDrive * * aDVDDrive);
  1229.  
  1230.     [propget] HRESULT FloppyDrive ([out, retval] IFloppyDrive * * aFloppyDrive);
  1231.  
  1232.     [propget] HRESULT USBController ([out, retval] IUSBController * * aUSBController);
  1233.  
  1234.     [propget] HRESULT AudioAdapter ([out, retval] IAudioAdapter * * aAudioAdapter);
  1235.  
  1236.     [propget] HRESULT SettingsFilePath ([out, retval] BSTR * aSettingsFilePath);
  1237.  
  1238.     [propget] HRESULT SettingsModified ([out, retval] BOOL * aSettingsModified);
  1239.  
  1240.     [propget] HRESULT SessionState ([out, retval] SessionState * aSessionState);
  1241.  
  1242.     [propget] HRESULT SessionType ([out, retval] BSTR * aSessionType);
  1243.  
  1244.     [propget] HRESULT SessionPid ([out, retval] ULONG * aSessionPid);
  1245.  
  1246.     [propget] HRESULT State ([out, retval] MachineState * aState);
  1247.  
  1248.     [propget] HRESULT LastStateChange ([out, retval] LONG64 * aLastStateChange);
  1249.  
  1250.     [propget] HRESULT StateFilePath ([out, retval] BSTR * aStateFilePath);
  1251.  
  1252.     [propget] HRESULT LogFolder ([out, retval] BSTR * aLogFolder);
  1253.  
  1254.     [propget] HRESULT CurrentSnapshot ([out, retval] ISnapshot * * aCurrentSnapshot);
  1255.  
  1256.     [propget] HRESULT SnapshotCount ([out, retval] ULONG * aSnapshotCount);
  1257.  
  1258.     [propget] HRESULT CurrentStateModified ([out, retval] BOOL * aCurrentStateModified);
  1259.  
  1260.     [propget] HRESULT SharedFolders ([out, retval] ISharedFolderCollection * * aSharedFolders);
  1261.  
  1262.     [propget] HRESULT ClipboardMode ([out, retval] ClipboardMode * aClipboardMode);
  1263.     [propput] HRESULT ClipboardMode ([in] ClipboardMode aClipboardMode);
  1264.  
  1265.     HRESULT SetBootOrder (
  1266.         [in] ULONG aPosition,
  1267.         [in] DeviceType aDevice
  1268.     );
  1269.  
  1270.     HRESULT GetBootOrder (
  1271.         [in] ULONG aOrder,
  1272.         [out, retval] DeviceType * aDevice
  1273.     );
  1274.  
  1275.     HRESULT AttachHardDisk (
  1276.         [in] GUID aDiskID,
  1277.         [in] DiskControllerType aController,
  1278.         [in] LONG aDevice
  1279.     );
  1280.  
  1281.     HRESULT GetHardDisk (
  1282.         [in] DiskControllerType aController,
  1283.         [in] LONG aDeviceNumber,
  1284.         [out, retval] IHardDisk * * aHardDisk
  1285.     );
  1286.  
  1287.     HRESULT DetachHardDisk (
  1288.         [in] DiskControllerType aController,
  1289.         [in] LONG aDevice
  1290.     );
  1291.  
  1292.     HRESULT GetNetworkAdapter (
  1293.         [in] ULONG aSlot,
  1294.         [out, retval] INetworkAdapter * * aAdapter
  1295.     );
  1296.  
  1297.     HRESULT GetSerialPort (
  1298.         [in] ULONG aSlot,
  1299.         [out, retval] ISerialPort * * aPort
  1300.     );
  1301.  
  1302.     HRESULT GetParallelPort (
  1303.         [in] ULONG aSlot,
  1304.         [out, retval] IParallelPort * * aPort
  1305.     );
  1306.  
  1307.     HRESULT GetNextExtraDataKey (
  1308.         [in] BSTR aKey,
  1309.         [out] BSTR * aNextKey,
  1310.         [out] BSTR * aNextValue
  1311.     );
  1312.  
  1313.     HRESULT GetExtraData (
  1314.         [in] BSTR aKey,
  1315.         [out, retval] BSTR * aValue
  1316.     );
  1317.  
  1318.     HRESULT SetExtraData (
  1319.         [in] BSTR aKey,
  1320.         [in] BSTR aValue
  1321.     );
  1322.  
  1323.     HRESULT SaveSettings();
  1324.  
  1325.     HRESULT DiscardSettings();
  1326.  
  1327.     HRESULT DeleteSettings();
  1328.  
  1329.     HRESULT GetSnapshot (
  1330.         [in] GUID aId,
  1331.         [out, retval] ISnapshot * * aSnapshot
  1332.     );
  1333.  
  1334.     HRESULT FindSnapshot (
  1335.         [in] BSTR aName,
  1336.         [out, retval] ISnapshot * * aSnapshot
  1337.     );
  1338.  
  1339.     HRESULT SetCurrentSnapshot (
  1340.         [in] GUID aId
  1341.     );
  1342.  
  1343.     HRESULT CreateSharedFolder (
  1344.         [in] BSTR aName,
  1345.         [in] BSTR aHostPath
  1346.     );
  1347.  
  1348.     HRESULT RemoveSharedFolder (
  1349.         [in] BSTR aName
  1350.     );
  1351.  
  1352.     HRESULT CanShowConsoleWindow (
  1353.         [out, retval] BOOL * aCanShow
  1354.     );
  1355.  
  1356.     HRESULT ShowConsoleWindow (
  1357.         [out, retval] ULONG64 * aWinId
  1358.     );
  1359.  
  1360. }; /* interface IMachine */
  1361.  
  1362. [
  1363.     uuid(13dfbef3-b74d-487d-bada-2304529aefa6),
  1364.     object,
  1365.     dual
  1366. ]
  1367. interface IConsoleCallback : IUnknown
  1368. {
  1369.     HRESULT OnMousePointerShapeChange (
  1370.         [in] BOOL aVisible,
  1371.         [in] BOOL aAlpha,
  1372.         [in] ULONG aXHot,
  1373.         [in] ULONG aYHot,
  1374.         [in] ULONG aWidth,
  1375.         [in] ULONG aHeight,
  1376.         [in] BYTE * aShape
  1377.     );
  1378.  
  1379.     HRESULT OnMouseCapabilityChange (
  1380.         [in] BOOL aSupportsAbsolute,
  1381.         [in] BOOL aNeedsHostCursor
  1382.     );
  1383.  
  1384.     HRESULT OnKeyboardLedsChange (
  1385.         [in] BOOL aNumLock,
  1386.         [in] BOOL aCapsLock,
  1387.         [in] BOOL aScrollLock
  1388.     );
  1389.  
  1390.     HRESULT OnStateChange (
  1391.         [in] MachineState aState
  1392.     );
  1393.  
  1394.     HRESULT OnAdditionsStateChange();
  1395.  
  1396.     HRESULT OnDVDDriveChange();
  1397.  
  1398.     HRESULT OnFloppyDriveChange();
  1399.  
  1400.     HRESULT OnNetworkAdapterChange (
  1401.         [in] INetworkAdapter * aNetworkAdapter
  1402.     );
  1403.  
  1404.     HRESULT OnSerialPortChange (
  1405.         [in] ISerialPort * aSerialPort
  1406.     );
  1407.  
  1408.     HRESULT OnParallelPortChange (
  1409.         [in] IParallelPort * aParallelPort
  1410.     );
  1411.  
  1412.     HRESULT OnVRDPServerChange();
  1413.  
  1414.     HRESULT OnUSBControllerChange();
  1415.  
  1416.     HRESULT OnUSBDeviceStateChange (
  1417.         [in] IUSBDevice * aDevice,
  1418.         [in] BOOL aAttached,
  1419.         [in] IVirtualBoxErrorInfo * aError
  1420.     );
  1421.  
  1422.     HRESULT OnSharedFolderChange (
  1423.         [in] Scope aScope
  1424.     );
  1425.  
  1426.     HRESULT OnRuntimeError (
  1427.         [in] BOOL aFatal,
  1428.         [in] BSTR aId,
  1429.         [in] BSTR aMessage
  1430.     );
  1431.  
  1432.     HRESULT OnCanShowWindow (
  1433.         [out, retval] BOOL * aCanShow
  1434.     );
  1435.  
  1436.     HRESULT OnShowWindow (
  1437.         [out, retval] ULONG64 * aWinId
  1438.     );
  1439.  
  1440. }; /* interface IConsoleCallback */
  1441.  
  1442. [
  1443.     uuid(550104cd-2dfd-4a6c-857d-f6f8e088e62c),
  1444.     object,
  1445.     dual
  1446. ]
  1447. interface IRemoteDisplayInfo : IUnknown
  1448. {
  1449.     [propget] HRESULT Active ([out, retval] BOOL * aActive);
  1450.  
  1451.     [propget] HRESULT NumberOfClients ([out, retval] ULONG * aNumberOfClients);
  1452.  
  1453.     [propget] HRESULT BeginTime ([out, retval] LONG64 * aBeginTime);
  1454.  
  1455.     [propget] HRESULT EndTime ([out, retval] LONG64 * aEndTime);
  1456.  
  1457.     [propget] HRESULT BytesSent ([out, retval] ULONG64 * aBytesSent);
  1458.  
  1459.     [propget] HRESULT BytesSentTotal ([out, retval] ULONG64 * aBytesSentTotal);
  1460.  
  1461.     [propget] HRESULT BytesReceived ([out, retval] ULONG64 * aBytesReceived);
  1462.  
  1463.     [propget] HRESULT BytesReceivedTotal ([out, retval] ULONG64 * aBytesReceivedTotal);
  1464.  
  1465.     [propget] HRESULT User ([out, retval] BSTR * aUser);
  1466.  
  1467.     [propget] HRESULT Domain ([out, retval] BSTR * aDomain);
  1468.  
  1469.     [propget] HRESULT ClientName ([out, retval] BSTR * aClientName);
  1470.  
  1471.     [propget] HRESULT ClientIP ([out, retval] BSTR * aClientIP);
  1472.  
  1473.     [propget] HRESULT ClientVersion ([out, retval] ULONG * aClientVersion);
  1474.  
  1475.     [propget] HRESULT EncryptionStyle ([out, retval] ULONG * aEncryptionStyle);
  1476.  
  1477. }; /* interface IRemoteDisplayInfo */
  1478.  
  1479. [
  1480.     uuid(1DEA5C4B-0753-4193-B909-22330F64EC45),
  1481.     object,
  1482.     dual
  1483. ]
  1484. interface IConsole : IUnknown
  1485. {
  1486.     [propget] HRESULT Machine ([out, retval] IMachine * * aMachine);
  1487.  
  1488.     [propget] HRESULT State ([out, retval] MachineState * aState);
  1489.  
  1490.     [propget] HRESULT Guest ([out, retval] IGuest * * aGuest);
  1491.  
  1492.     [propget] HRESULT Keyboard ([out, retval] IKeyboard * * aKeyboard);
  1493.  
  1494.     [propget] HRESULT Mouse ([out, retval] IMouse * * aMouse);
  1495.  
  1496.     [propget] HRESULT Display ([out, retval] IDisplay * * aDisplay);
  1497.  
  1498.     [propget] HRESULT Debugger ([out, retval] IMachineDebugger * * aDebugger);
  1499.  
  1500.     [propget] HRESULT USBDevices ([out, retval] IUSBDeviceCollection * * aUSBDevices);
  1501.  
  1502.     [propget] HRESULT RemoteUSBDevices ([out, retval] IHostUSBDeviceCollection * * aRemoteUSBDevices);
  1503.  
  1504.     [propget] HRESULT SharedFolders ([out, retval] ISharedFolderCollection * * aSharedFolders);
  1505.  
  1506.     [propget] HRESULT RemoteDisplayInfo ([out, retval] IRemoteDisplayInfo * * aRemoteDisplayInfo);
  1507.  
  1508.     HRESULT PowerUp (
  1509.         [out, retval] IProgress * * aProgress
  1510.     );
  1511.  
  1512.     HRESULT PowerDown();
  1513.  
  1514.     HRESULT Reset();
  1515.  
  1516.     HRESULT Pause();
  1517.  
  1518.     HRESULT Resume();
  1519.  
  1520.     HRESULT PowerButton();
  1521.  
  1522.     HRESULT SleepButton();
  1523.  
  1524.     HRESULT SaveState (
  1525.         [out, retval] IProgress * * aProgress
  1526.     );
  1527.  
  1528.     HRESULT DiscardSavedState();
  1529.  
  1530.     HRESULT GetDeviceActivity (
  1531.         [in] DeviceType aType,
  1532.         [out, retval] DeviceActivity * aActivity
  1533.     );
  1534.  
  1535.     HRESULT AttachUSBDevice (
  1536.         [in] GUID aId
  1537.     );
  1538.  
  1539.     HRESULT DetachUSBDevice (
  1540.         [in] GUID aId,
  1541.         [out, retval] IUSBDevice * * aDevice
  1542.     );
  1543.  
  1544.     HRESULT CreateSharedFolder (
  1545.         [in] BSTR aName,
  1546.         [in] BSTR aHostPath
  1547.     );
  1548.  
  1549.     HRESULT RemoveSharedFolder (
  1550.         [in] BSTR aName
  1551.     );
  1552.  
  1553.     HRESULT TakeSnapshot (
  1554.         [in] BSTR aName,
  1555.         [in] BSTR aDescription,
  1556.         [out, retval] IProgress * * aProgress
  1557.     );
  1558.  
  1559.     HRESULT DiscardSnapshot (
  1560.         [in] GUID aId,
  1561.         [out, retval] IProgress * * aProgress
  1562.     );
  1563.  
  1564.     HRESULT DiscardCurrentState (
  1565.         [out, retval] IProgress * * aProgress
  1566.     );
  1567.  
  1568.     HRESULT DiscardCurrentSnapshotAndState (
  1569.         [out, retval] IProgress * * aProgress
  1570.     );
  1571.  
  1572.     HRESULT RegisterCallback (
  1573.         [in] IConsoleCallback * aCallback
  1574.     );
  1575.  
  1576.     HRESULT UnregisterCallback (
  1577.         [in] IConsoleCallback * aCallback
  1578.     );
  1579.  
  1580. }; /* interface IConsole */
  1581.  
  1582. [
  1583.     uuid(21f86694-202d-4ce4-8b05-a63ff82dbf4c),
  1584.     object,
  1585.     dual
  1586. ]
  1587. interface IHostDVDDrive : IUnknown
  1588. {
  1589.     [propget] HRESULT Name ([out, retval] BSTR * aName);
  1590.  
  1591.     [propget] HRESULT Description ([out, retval] BSTR * aDescription);
  1592.  
  1593.     [propget] HRESULT Udi ([out, retval] BSTR * aUdi);
  1594.  
  1595. }; /* interface IHostDVDDrive */
  1596.  
  1597. [
  1598.     uuid(1ed7cfaf-c363-40df-aa4e-89c1afb7d96b),
  1599.     object,
  1600.     dual
  1601. ]
  1602. interface IHostDVDDriveEnumerator : IUnknown
  1603. {
  1604.     HRESULT HasMore ([out, retval] BOOL * more);
  1605.  
  1606.     HRESULT GetNext ([out, retval] IHostDVDDrive * * next);
  1607.  
  1608.  
  1609. }; /* interface IHostDVDDriveEnumerator */
  1610.  
  1611. [
  1612.     uuid(1909c533-1a1e-445f-a4e1-a267cffc30ed),
  1613.     object,
  1614.     dual
  1615. ]
  1616. interface IHostDVDDriveCollection : IUnknown
  1617. {
  1618.     [propget] HRESULT Count ([out, retval] ULONG * count);
  1619.  
  1620.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IHostDVDDrive * * item);
  1621.  
  1622.     HRESULT Enumerate ([out, retval] IHostDVDDriveEnumerator * * enumerator);
  1623.  
  1624.     HRESULT FindByName (
  1625.         [in] BSTR aName,
  1626.         [out, retval] IHostDVDDrive * * aDrive
  1627.     );
  1628.  
  1629.  
  1630. }; /* interface IHostDVDDriveCollection */
  1631.  
  1632. [
  1633.     uuid(b6a4d1a9-4221-43c3-bd52-021a5daa9ed2),
  1634.     object,
  1635.     dual
  1636. ]
  1637. interface IHostFloppyDrive : IUnknown
  1638. {
  1639.     [propget] HRESULT Name ([out, retval] BSTR * aName);
  1640.  
  1641.     [propget] HRESULT Description ([out, retval] BSTR * aDescription);
  1642.  
  1643.     [propget] HRESULT Udi ([out, retval] BSTR * aUdi);
  1644.  
  1645. }; /* interface IHostFloppyDrive */
  1646.  
  1647. [
  1648.     uuid(ce04c924-4f54-432a-9dec-11fddc3ea875),
  1649.     object,
  1650.     dual
  1651. ]
  1652. interface IHostFloppyDriveEnumerator : IUnknown
  1653. {
  1654.     HRESULT HasMore ([out, retval] BOOL * more);
  1655.  
  1656.     HRESULT GetNext ([out, retval] IHostFloppyDrive * * next);
  1657.  
  1658.  
  1659. }; /* interface IHostFloppyDriveEnumerator */
  1660.  
  1661. [
  1662.     uuid(fd84bb86-c59a-4037-a557-755ff263a460),
  1663.     object,
  1664.     dual
  1665. ]
  1666. interface IHostFloppyDriveCollection : IUnknown
  1667. {
  1668.     [propget] HRESULT Count ([out, retval] ULONG * count);
  1669.  
  1670.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IHostFloppyDrive * * item);
  1671.  
  1672.     HRESULT Enumerate ([out, retval] IHostFloppyDriveEnumerator * * enumerator);
  1673.  
  1674.     HRESULT FindByName (
  1675.         [in] BSTR aName,
  1676.         [out, retval] IHostFloppyDrive * * aDrive
  1677.     );
  1678.  
  1679.  
  1680. }; /* interface IHostFloppyDriveCollection */
  1681.  
  1682. [
  1683.     uuid(F4512D7C-B074-4e97-99B8-6D2BD27C3F5A),
  1684.     object,
  1685.     dual
  1686. ]
  1687. interface IHostNetworkInterface : IUnknown
  1688. {
  1689.     [propget] HRESULT Name ([out, retval] BSTR * aName);
  1690.  
  1691.     [propget] HRESULT Id ([out, retval] GUID * aId);
  1692.  
  1693. }; /* interface IHostNetworkInterface */
  1694.  
  1695. [
  1696.     uuid(7B52FEF7-56E8-4aec-92F5-15E6D11EC630),
  1697.     object,
  1698.     dual
  1699. ]
  1700. interface IHostNetworkInterfaceEnumerator : IUnknown
  1701. {
  1702.     HRESULT HasMore ([out, retval] BOOL * more);
  1703.  
  1704.     HRESULT GetNext ([out, retval] IHostNetworkInterface * * next);
  1705.  
  1706.  
  1707. }; /* interface IHostNetworkInterfaceEnumerator */
  1708.  
  1709. [
  1710.     uuid(BF1D41F2-B97B-4314-A0FB-D4823AF42FB5),
  1711.     object,
  1712.     dual
  1713. ]
  1714. interface IHostNetworkInterfaceCollection : IUnknown
  1715. {
  1716.     [propget] HRESULT Count ([out, retval] ULONG * count);
  1717.  
  1718.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IHostNetworkInterface * * item);
  1719.  
  1720.     HRESULT Enumerate ([out, retval] IHostNetworkInterfaceEnumerator * * enumerator);
  1721.  
  1722.     HRESULT FindByName (
  1723.         [in] BSTR aName,
  1724.         [out, retval] IHostNetworkInterface * * aNetworkInterface
  1725.     );
  1726.  
  1727.     HRESULT FindById (
  1728.         [in] GUID aId,
  1729.         [out, retval] IHostNetworkInterface * * aNetworkInterface
  1730.     );
  1731.  
  1732.  
  1733. }; /* interface IHostNetworkInterfaceCollection */
  1734.  
  1735. [
  1736.     uuid(81729c26-1aec-46f5-b7c0-cc7364738fdb),
  1737.     object,
  1738.     dual
  1739. ]
  1740. interface IHost : IUnknown
  1741. {
  1742.     [propget] HRESULT DVDDrives ([out, retval] IHostDVDDriveCollection * * aDVDDrives);
  1743.  
  1744.     [propget] HRESULT FloppyDrives ([out, retval] IHostFloppyDriveCollection * * aFloppyDrives);
  1745.  
  1746.     [propget] HRESULT USBDevices ([out, retval] IHostUSBDeviceCollection * * aUSBDevices);
  1747.  
  1748.     [propget] HRESULT USBDeviceFilters ([out, retval] IHostUSBDeviceFilterCollection * * aUSBDeviceFilters);
  1749.  
  1750.     [propget] HRESULT ProcessorCount ([out, retval] ULONG * aProcessorCount);
  1751.  
  1752.     [propget] HRESULT ProcessorSpeed ([out, retval] ULONG * aProcessorSpeed);
  1753.  
  1754.     [propget] HRESULT ProcessorDescription ([out, retval] BSTR * aProcessorDescription);
  1755.  
  1756.     [propget] HRESULT MemorySize ([out, retval] ULONG * aMemorySize);
  1757.  
  1758.     [propget] HRESULT MemoryAvailable ([out, retval] ULONG * aMemoryAvailable);
  1759.  
  1760.     [propget] HRESULT OperatingSystem ([out, retval] BSTR * aOperatingSystem);
  1761.  
  1762.     [propget] HRESULT OSVersion ([out, retval] BSTR * aOSVersion);
  1763.  
  1764.     [propget] HRESULT UTCTime ([out, retval] LONG64 * aUTCTime);
  1765.  
  1766.     HRESULT CreateUSBDeviceFilter (
  1767.         [in] BSTR aName,
  1768.         [out, retval] IHostUSBDeviceFilter * * aFilter
  1769.     );
  1770.  
  1771.     HRESULT InsertUSBDeviceFilter (
  1772.         [in] ULONG aPosition,
  1773.         [in] IHostUSBDeviceFilter * aFilter
  1774.     );
  1775.  
  1776.     HRESULT RemoveUSBDeviceFilter (
  1777.         [in] ULONG aPosition,
  1778.         [out, retval] IHostUSBDeviceFilter * * aFilter
  1779.     );
  1780.  
  1781.     [propget] HRESULT NetworkInterfaces ([out, retval] IHostNetworkInterfaceCollection * * aNetworkInterfaces);
  1782.  
  1783.     HRESULT CreateHostNetworkInterface (
  1784.         [in] BSTR aName,
  1785.         [out] IHostNetworkInterface * * aHostInterface,
  1786.         [out, retval] IProgress * * aProgress
  1787.     );
  1788.  
  1789.     HRESULT RemoveHostNetworkInterface (
  1790.         [in] GUID aId,
  1791.         [out] IHostNetworkInterface * * aHostInterface,
  1792.         [out, retval] IProgress * * aProgress
  1793.     );
  1794.  
  1795. }; /* interface IHost */
  1796.  
  1797. [
  1798.     uuid(12c2e31e-247f-4d51-82e5-5b9d4a6c7d5b),
  1799.     object,
  1800.     dual
  1801. ]
  1802. interface ISystemProperties : IUnknown
  1803. {
  1804.     [propget] HRESULT MinGuestRAM ([out, retval] ULONG * aMinGuestRAM);
  1805.  
  1806.     [propget] HRESULT MaxGuestRAM ([out, retval] ULONG * aMaxGuestRAM);
  1807.  
  1808.     [propget] HRESULT MinGuestVRAM ([out, retval] ULONG * aMinGuestVRAM);
  1809.  
  1810.     [propget] HRESULT MaxGuestVRAM ([out, retval] ULONG * aMaxGuestVRAM);
  1811.  
  1812.     [propget] HRESULT MaxVDISize ([out, retval] ULONG64 * aMaxVDISize);
  1813.  
  1814.     [propget] HRESULT NetworkAdapterCount ([out, retval] ULONG * aNetworkAdapterCount);
  1815.  
  1816.     [propget] HRESULT SerialPortCount ([out, retval] ULONG * aSerialPortCount);
  1817.  
  1818.     [propget] HRESULT ParallelPortCount ([out, retval] ULONG * aParallelPortCount);
  1819.  
  1820.     [propget] HRESULT MaxBootPosition ([out, retval] ULONG * aMaxBootPosition);
  1821.  
  1822.     [propget] HRESULT DefaultVDIFolder ([out, retval] BSTR * aDefaultVDIFolder);
  1823.     [propput] HRESULT DefaultVDIFolder ([in] BSTR aDefaultVDIFolder);
  1824.  
  1825.     [propget] HRESULT DefaultMachineFolder ([out, retval] BSTR * aDefaultMachineFolder);
  1826.     [propput] HRESULT DefaultMachineFolder ([in] BSTR aDefaultMachineFolder);
  1827.  
  1828.     [propget] HRESULT RemoteDisplayAuthLibrary ([out, retval] BSTR * aRemoteDisplayAuthLibrary);
  1829.     [propput] HRESULT RemoteDisplayAuthLibrary ([in] BSTR aRemoteDisplayAuthLibrary);
  1830.  
  1831.     [propget] HRESULT HWVirtExEnabled ([out, retval] BOOL * aHWVirtExEnabled);
  1832.     [propput] HRESULT HWVirtExEnabled ([in] BOOL aHWVirtExEnabled);
  1833.  
  1834.     [propget] HRESULT LogHistoryCount ([out, retval] ULONG * aLogHistoryCount);
  1835.     [propput] HRESULT LogHistoryCount ([in] ULONG aLogHistoryCount);
  1836.  
  1837. }; /* interface ISystemProperties */
  1838.  
  1839. [
  1840.     uuid(da94f478-1f37-4726-b750-2235950dc2fe),
  1841.     object,
  1842.     dual
  1843. ]
  1844. interface IGuestOSType : IUnknown
  1845. {
  1846.     [propget] HRESULT Id ([out, retval] BSTR * aId);
  1847.  
  1848.     [propget] HRESULT Description ([out, retval] BSTR * aDescription);
  1849.  
  1850.     [propget] HRESULT RecommendedRAM ([out, retval] ULONG * aRecommendedRAM);
  1851.  
  1852.     [propget] HRESULT RecommendedVRAM ([out, retval] ULONG * aRecommendedVRAM);
  1853.  
  1854.     [propget] HRESULT RecommendedHDD ([out, retval] ULONG * aRecommendedHDD);
  1855.  
  1856. }; /* interface IGuestOSType */
  1857.  
  1858. [
  1859.     uuid(a3335e02-4669-4e3c-80c7-c4dc7056a07c),
  1860.     object,
  1861.     dual
  1862. ]
  1863. interface IGuestOSTypeEnumerator : IUnknown
  1864. {
  1865.     HRESULT HasMore ([out, retval] BOOL * more);
  1866.  
  1867.     HRESULT GetNext ([out, retval] IGuestOSType * * next);
  1868.  
  1869.  
  1870. }; /* interface IGuestOSTypeEnumerator */
  1871.  
  1872. [
  1873.     uuid(a5e36749-a610-498b-9f29-2e36c1042d65),
  1874.     object,
  1875.     dual
  1876. ]
  1877. interface IGuestOSTypeCollection : IUnknown
  1878. {
  1879.     [propget] HRESULT Count ([out, retval] ULONG * count);
  1880.  
  1881.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IGuestOSType * * item);
  1882.  
  1883.     HRESULT Enumerate ([out, retval] IGuestOSTypeEnumerator * * enumerator);
  1884.  
  1885.  
  1886. }; /* interface IGuestOSTypeCollection */
  1887.  
  1888. [
  1889.     uuid(5d54a565-813c-42a0-a81a-e31779e03186),
  1890.     object,
  1891.     dual
  1892. ]
  1893. interface IGuest : IUnknown
  1894. {
  1895.     [propget] HRESULT OSTypeId ([out, retval] BSTR * aOSTypeId);
  1896.  
  1897.     [propget] HRESULT AdditionsActive ([out, retval] BOOL * aAdditionsActive);
  1898.  
  1899.     [propget] HRESULT AdditionsVersion ([out, retval] BSTR * aAdditionsVersion);
  1900.  
  1901.     [propget] HRESULT SupportsSeamless ([out, retval] BOOL * aSupportsSeamless);
  1902.  
  1903.     [propget] HRESULT MemoryBalloonSize ([out, retval] ULONG * aMemoryBalloonSize);
  1904.     [propput] HRESULT MemoryBalloonSize ([in] ULONG aMemoryBalloonSize);
  1905.  
  1906.     [propget] HRESULT StatisticsUpdateInterval ([out, retval] ULONG * aStatisticsUpdateInterval);
  1907.     [propput] HRESULT StatisticsUpdateInterval ([in] ULONG aStatisticsUpdateInterval);
  1908.  
  1909.     HRESULT SetCredentials (
  1910.         [in] BSTR aUserName,
  1911.         [in] BSTR aPassword,
  1912.         [in] BSTR aDomain,
  1913.         [in] BOOL aAllowInteractiveLogon
  1914.     );
  1915.  
  1916.     HRESULT GetStatistic (
  1917.         [in] GuestStatisticType aStatistic,
  1918.         [out] ULONG * aStatVal
  1919.     );
  1920.  
  1921. }; /* interface IGuest */
  1922.  
  1923. [
  1924.     uuid(e0380522-4ef1-48f4-856c-e455177ccb2d),
  1925.     object,
  1926.     dual
  1927. ]
  1928. interface IProgressEnumerator : IUnknown
  1929. {
  1930.     HRESULT HasMore ([out, retval] BOOL * more);
  1931.  
  1932.     HRESULT GetNext ([out, retval] IProgress * * next);
  1933.  
  1934.  
  1935. }; /* interface IProgressEnumerator */
  1936.  
  1937. [
  1938.     uuid(78B76A7C-F0F2-467c-9F0E-F089A54EE957),
  1939.     object,
  1940.     dual
  1941. ]
  1942. interface IProgressCollection : IUnknown
  1943. {
  1944.     [propget] HRESULT Count ([out, retval] ULONG * count);
  1945.  
  1946.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IProgress * * item);
  1947.  
  1948.     HRESULT Enumerate ([out, retval] IProgressEnumerator * * enumerator);
  1949.  
  1950.  
  1951. }; /* interface IProgressCollection */
  1952.  
  1953. [
  1954.     uuid(10CC03A1-717E-429b-992D-C67B56175A51),
  1955.     object,
  1956.     dual
  1957. ]
  1958. interface IProgress : IUnknown
  1959. {
  1960.     [propget] HRESULT Id ([out, retval] GUID * aId);
  1961.  
  1962.     [propget] HRESULT Description ([out, retval] BSTR * aDescription);
  1963.  
  1964.     [propget] HRESULT Initiator ([out, retval] IUnknown * * aInitiator);
  1965.  
  1966.     [propget] HRESULT Cancelable ([out, retval] BOOL * aCancelable);
  1967.  
  1968.     [propget] HRESULT Percent ([out, retval] LONG * aPercent);
  1969.  
  1970.     [propget] HRESULT Completed ([out, retval] BOOL * aCompleted);
  1971.  
  1972.     [propget] HRESULT Canceled ([out, retval] BOOL * aCanceled);
  1973.  
  1974.     [propget] HRESULT ResultCode ([out, retval] HRESULT * aResultCode);
  1975.  
  1976.     [propget] HRESULT ErrorInfo ([out, retval] IVirtualBoxErrorInfo * * aErrorInfo);
  1977.  
  1978.     [propget] HRESULT OperationCount ([out, retval] ULONG * aOperationCount);
  1979.  
  1980.     [propget] HRESULT Operation ([out, retval] ULONG * aOperation);
  1981.  
  1982.     [propget] HRESULT OperationDescription ([out, retval] BSTR * aOperationDescription);
  1983.  
  1984.     [propget] HRESULT OperationPercent ([out, retval] LONG * aOperationPercent);
  1985.  
  1986.     HRESULT WaitForCompletion (
  1987.         [in] LONG aTimeout
  1988.     );
  1989.  
  1990.     HRESULT WaitForOperationCompletion (
  1991.         [in] ULONG aOperation,
  1992.         [in] LONG aTimeout
  1993.     );
  1994.  
  1995.     HRESULT Cancel();
  1996.  
  1997. }; /* interface IProgress */
  1998.  
  1999. [
  2000.     uuid(25cfa2a4-1f1d-4f05-9658-b7a5894ef1a3),
  2001.     object,
  2002.     dual
  2003. ]
  2004. interface ISnapshotEnumerator : IUnknown
  2005. {
  2006.     HRESULT HasMore ([out, retval] BOOL * more);
  2007.  
  2008.     HRESULT GetNext ([out, retval] ISnapshot * * next);
  2009.  
  2010.  
  2011. }; /* interface ISnapshotEnumerator */
  2012.  
  2013. [
  2014.     uuid(23852e3c-94cd-4801-ab05-ed35675b3894),
  2015.     object,
  2016.     dual
  2017. ]
  2018. interface ISnapshotCollection : IUnknown
  2019. {
  2020.     [propget] HRESULT Count ([out, retval] ULONG * count);
  2021.  
  2022.     HRESULT GetItemAt ([in] ULONG index, [out, retval] ISnapshot * * item);
  2023.  
  2024.     HRESULT Enumerate ([out, retval] ISnapshotEnumerator * * enumerator);
  2025.  
  2026.  
  2027. }; /* interface ISnapshotCollection */
  2028.  
  2029. [
  2030.     uuid(9f1bbf79-13b0-4da2-abba-4a992c65c083),
  2031.     object,
  2032.     dual
  2033. ]
  2034. interface ISnapshot : IUnknown
  2035. {
  2036.     [propget] HRESULT Id ([out, retval] GUID * aId);
  2037.  
  2038.     [propget] HRESULT Name ([out, retval] BSTR * aName);
  2039.     [propput] HRESULT Name ([in] BSTR aName);
  2040.  
  2041.     [propget] HRESULT Description ([out, retval] BSTR * aDescription);
  2042.     [propput] HRESULT Description ([in] BSTR aDescription);
  2043.  
  2044.     [propget] HRESULT TimeStamp ([out, retval] LONG64 * aTimeStamp);
  2045.  
  2046.     [propget] HRESULT Online ([out, retval] BOOL * aOnline);
  2047.  
  2048.     [propget] HRESULT Machine ([out, retval] IMachine * * aMachine);
  2049.  
  2050.     [propget] HRESULT Parent ([out, retval] ISnapshot * * aParent);
  2051.  
  2052.     [propget] HRESULT Children ([out, retval] ISnapshotCollection * * aChildren);
  2053.  
  2054. }; /* interface ISnapshot */
  2055.  
  2056. [
  2057.     uuid(c0ffe596-21c6-4797-8d8a-b47b66881e7a),
  2058.     object,
  2059.     dual
  2060. ]
  2061. interface IHardDiskAttachment : IUnknown
  2062. {
  2063.     [propget] HRESULT HardDisk ([out, retval] IHardDisk * * aHardDisk);
  2064.  
  2065.     [propget] HRESULT Controller ([out, retval] DiskControllerType * aController);
  2066.  
  2067.     [propget] HRESULT DeviceNumber ([out, retval] LONG * aDeviceNumber);
  2068.  
  2069. }; /* interface IHardDiskAttachment */
  2070.  
  2071. [
  2072.     uuid(9955e486-2f0b-432a-99e4-0ebbd338875e),
  2073.     object,
  2074.     dual
  2075. ]
  2076. interface IHardDiskAttachmentEnumerator : IUnknown
  2077. {
  2078.     HRESULT HasMore ([out, retval] BOOL * more);
  2079.  
  2080.     HRESULT GetNext ([out, retval] IHardDiskAttachment * * next);
  2081.  
  2082.  
  2083. }; /* interface IHardDiskAttachmentEnumerator */
  2084.  
  2085. [
  2086.     uuid(8f727842-bb77-45d4-92de-4ec14bf613c9),
  2087.     object,
  2088.     dual
  2089. ]
  2090. interface IHardDiskAttachmentCollection : IUnknown
  2091. {
  2092.     [propget] HRESULT Count ([out, retval] ULONG * count);
  2093.  
  2094.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IHardDiskAttachment * * item);
  2095.  
  2096.     HRESULT Enumerate ([out, retval] IHardDiskAttachmentEnumerator * * enumerator);
  2097.  
  2098.  
  2099. }; /* interface IHardDiskAttachmentCollection */
  2100.  
  2101. [
  2102.     uuid(b976f97b-cdb8-47e3-9860-084031cbd533),
  2103.     object,
  2104.     dual
  2105. ]
  2106. interface IHardDiskEnumerator : IUnknown
  2107. {
  2108.     HRESULT HasMore ([out, retval] BOOL * more);
  2109.  
  2110.     HRESULT GetNext ([out, retval] IHardDisk * * next);
  2111.  
  2112.  
  2113. }; /* interface IHardDiskEnumerator */
  2114.  
  2115. [
  2116.     uuid(43EAC2BC-5C61-40fa-BC38-46DE2C7DB6BB),
  2117.     object,
  2118.     dual
  2119. ]
  2120. interface IHardDiskCollection : IUnknown
  2121. {
  2122.     [propget] HRESULT Count ([out, retval] ULONG * count);
  2123.  
  2124.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IHardDisk * * item);
  2125.  
  2126.     HRESULT Enumerate ([out, retval] IHardDiskEnumerator * * enumerator);
  2127.  
  2128.  
  2129. }; /* interface IHardDiskCollection */
  2130.  
  2131. [
  2132.     uuid(FD443EC1-000F-4F5B-9282-D72760A66916),
  2133.     object,
  2134.     dual
  2135. ]
  2136. interface IHardDisk : IUnknown
  2137. {
  2138.     [propget] HRESULT Id ([out, retval] GUID * aId);
  2139.  
  2140.     [propget] HRESULT Description ([out, retval] BSTR * aDescription);
  2141.     [propput] HRESULT Description ([in] BSTR aDescription);
  2142.  
  2143.     [propget] HRESULT StorageType ([out, retval] HardDiskStorageType * aStorageType);
  2144.  
  2145.     [propget] HRESULT Location ([out, retval] BSTR * aLocation);
  2146.  
  2147.     [propget] HRESULT Type ([out, retval] HardDiskType * aType);
  2148.     [propput] HRESULT Type ([in] HardDiskType aType);
  2149.  
  2150.     [propget] HRESULT Parent ([out, retval] IHardDisk * * aParent);
  2151.  
  2152.     [propget] HRESULT Children ([out, retval] IHardDiskCollection * * aChildren);
  2153.  
  2154.     [propget] HRESULT Root ([out, retval] IHardDisk * * aRoot);
  2155.  
  2156.     [propget] HRESULT Accessible ([out, retval] BOOL * aAccessible);
  2157.  
  2158.     [propget] HRESULT AllAccessible ([out, retval] BOOL * aAllAccessible);
  2159.  
  2160.     [propget] HRESULT LastAccessError ([out, retval] BSTR * aLastAccessError);
  2161.  
  2162.     [propget] HRESULT Size ([out, retval] ULONG64 * aSize);
  2163.  
  2164.     [propget] HRESULT ActualSize ([out, retval] ULONG64 * aActualSize);
  2165.  
  2166.     [propget] HRESULT MachineId ([out, retval] GUID * aMachineId);
  2167.  
  2168.     [propget] HRESULT SnapshotId ([out, retval] GUID * aSnapshotId);
  2169.  
  2170.     HRESULT CloneToImage (
  2171.         [in] BSTR aFilePath,
  2172.         [out] IVirtualDiskImage * * aImage,
  2173.         [out, retval] IProgress * * aProgress
  2174.     );
  2175.  
  2176. }; /* interface IHardDisk */
  2177.  
  2178. [
  2179.     uuid(a8265b5a-0d20-4a46-a02f-65693a4e8239),
  2180.     object,
  2181.     dual
  2182. ]
  2183. interface IVirtualDiskImage : IUnknown
  2184. {
  2185.     [propget] HRESULT FilePath ([out, retval] BSTR * aFilePath);
  2186.     [propput] HRESULT FilePath ([in] BSTR aFilePath);
  2187.  
  2188.     [propget] HRESULT Created ([out, retval] BOOL * aCreated);
  2189.  
  2190.     HRESULT CreateDynamicImage (
  2191.         [in] ULONG64 aSize,
  2192.         [out, retval] IProgress * * aProgress
  2193.     );
  2194.  
  2195.     HRESULT CreateFixedImage (
  2196.         [in] ULONG64 aSize,
  2197.         [out, retval] IProgress * * aProgress
  2198.     );
  2199.  
  2200.     HRESULT DeleteImage();
  2201.  
  2202. }; /* interface IVirtualDiskImage */
  2203.  
  2204. [
  2205.     uuid(003f6ca9-3257-4ef9-99c9-c66ce44576cb),
  2206.     object,
  2207.     dual
  2208. ]
  2209. interface IISCSIHardDisk : IUnknown
  2210. {
  2211.     [propget] HRESULT Server ([out, retval] BSTR * aServer);
  2212.     [propput] HRESULT Server ([in] BSTR aServer);
  2213.  
  2214.     [propget] HRESULT Port ([out, retval] USHORT * aPort);
  2215.     [propput] HRESULT Port ([in] USHORT aPort);
  2216.  
  2217.     [propget] HRESULT Target ([out, retval] BSTR * aTarget);
  2218.     [propput] HRESULT Target ([in] BSTR aTarget);
  2219.  
  2220.     [propget] HRESULT Lun ([out, retval] ULONG64 * aLun);
  2221.     [propput] HRESULT Lun ([in] ULONG64 aLun);
  2222.  
  2223.     [propget] HRESULT UserName ([out, retval] BSTR * aUserName);
  2224.     [propput] HRESULT UserName ([in] BSTR aUserName);
  2225.  
  2226.     [propget] HRESULT Password ([out, retval] BSTR * aPassword);
  2227.     [propput] HRESULT Password ([in] BSTR aPassword);
  2228.  
  2229. }; /* interface IISCSIHardDisk */
  2230.  
  2231. [
  2232.     uuid(178398f5-8559-4fee-979e-420af5b53eef),
  2233.     object,
  2234.     dual
  2235. ]
  2236. interface IVMDKImage : IUnknown
  2237. {
  2238.     [propget] HRESULT FilePath ([out, retval] BSTR * aFilePath);
  2239.     [propput] HRESULT FilePath ([in] BSTR aFilePath);
  2240.  
  2241.     [propget] HRESULT Created ([out, retval] BOOL * aCreated);
  2242.  
  2243.     HRESULT CreateDynamicImage (
  2244.         [in] ULONG64 aSize,
  2245.         [out, retval] IProgress * * aProgress
  2246.     );
  2247.  
  2248.     HRESULT CreateFixedImage (
  2249.         [in] ULONG64 aSize,
  2250.         [out, retval] IProgress * * aProgress
  2251.     );
  2252.  
  2253.     HRESULT DeleteImage();
  2254.  
  2255. }; /* interface IVMDKImage */
  2256.  
  2257. [
  2258.     uuid(9BE77C8D-E1BE-4bf2-A67B-B4DD3D2B0F28),
  2259.     object,
  2260.     dual
  2261. ]
  2262. interface IDVDImageEnumerator : IUnknown
  2263. {
  2264.     HRESULT HasMore ([out, retval] BOOL * more);
  2265.  
  2266.     HRESULT GetNext ([out, retval] IDVDImage * * next);
  2267.  
  2268.  
  2269. }; /* interface IDVDImageEnumerator */
  2270.  
  2271. [
  2272.     uuid(AE7053FA-ADD2-4ea4-AFCF-24D5F8DDED64),
  2273.     object,
  2274.     dual
  2275. ]
  2276. interface IDVDImageCollection : IUnknown
  2277. {
  2278.     [propget] HRESULT Count ([out, retval] ULONG * count);
  2279.  
  2280.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IDVDImage * * item);
  2281.  
  2282.     HRESULT Enumerate ([out, retval] IDVDImageEnumerator * * enumerator);
  2283.  
  2284.     HRESULT FindByPath (
  2285.         [in] BSTR aPath,
  2286.         [out, retval] IDVDImage * * aImage
  2287.     );
  2288.  
  2289.  
  2290. }; /* interface IDVDImageCollection */
  2291.  
  2292. [
  2293.     uuid(140FFF03-E479-4194-8562-ABC4F8171009),
  2294.     object,
  2295.     dual
  2296. ]
  2297. interface IDVDImage : IUnknown
  2298. {
  2299.     [propget] HRESULT Id ([out, retval] GUID * aId);
  2300.  
  2301.     [propget] HRESULT FilePath ([out, retval] BSTR * aFilePath);
  2302.  
  2303.     [propget] HRESULT Accessible ([out, retval] BOOL * aAccessible);
  2304.  
  2305.     [propget] HRESULT Size ([out, retval] ULONG64 * aSize);
  2306.  
  2307. }; /* interface IDVDImage */
  2308.  
  2309. [
  2310.     uuid(d9bd101a-8079-4fb9-bad1-31bf32482b75),
  2311.     object,
  2312.     dual
  2313. ]
  2314. interface IDVDDrive : IUnknown
  2315. {
  2316.     [propget] HRESULT State ([out, retval] DriveState * aState);
  2317.  
  2318.     [propget] HRESULT Passthrough ([out, retval] BOOL * aPassthrough);
  2319.     [propput] HRESULT Passthrough ([in] BOOL aPassthrough);
  2320.  
  2321.     HRESULT MountImage (
  2322.         [in] GUID aImageId
  2323.     );
  2324.  
  2325.     HRESULT CaptureHostDrive (
  2326.         [in] IHostDVDDrive * aDrive
  2327.     );
  2328.  
  2329.     HRESULT Unmount();
  2330.  
  2331.     HRESULT GetImage (
  2332.         [out, retval] IDVDImage * * aImage
  2333.     );
  2334.  
  2335.     HRESULT GetHostDrive (
  2336.         [out, retval] IHostDVDDrive * * aDrive
  2337.     );
  2338.  
  2339. }; /* interface IDVDDrive */
  2340.  
  2341. [
  2342.     uuid(902C4089-76B7-41f1-91E8-49A261A28A2C),
  2343.     object,
  2344.     dual
  2345. ]
  2346. interface IFloppyImageEnumerator : IUnknown
  2347. {
  2348.     HRESULT HasMore ([out, retval] BOOL * more);
  2349.  
  2350.     HRESULT GetNext ([out, retval] IFloppyImage * * next);
  2351.  
  2352.  
  2353. }; /* interface IFloppyImageEnumerator */
  2354.  
  2355. [
  2356.     uuid(327A8928-8572-446e-AD9A-18FE30E81F3F),
  2357.     object,
  2358.     dual
  2359. ]
  2360. interface IFloppyImageCollection : IUnknown
  2361. {
  2362.     [propget] HRESULT Count ([out, retval] ULONG * count);
  2363.  
  2364.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IFloppyImage * * item);
  2365.  
  2366.     HRESULT Enumerate ([out, retval] IFloppyImageEnumerator * * enumerator);
  2367.  
  2368.     HRESULT FindByPath (
  2369.         [in] BSTR aPath,
  2370.         [out, retval] IFloppyImage * * aImage
  2371.     );
  2372.  
  2373.  
  2374. }; /* interface IFloppyImageCollection */
  2375.  
  2376. [
  2377.     uuid(CC696755-EA98-4ffe-9DC5-C003047034AB),
  2378.     object,
  2379.     dual
  2380. ]
  2381. interface IFloppyImage : IUnknown
  2382. {
  2383.     [propget] HRESULT Id ([out, retval] GUID * aId);
  2384.  
  2385.     [propget] HRESULT FilePath ([out, retval] BSTR * aFilePath);
  2386.  
  2387.     [propget] HRESULT Accessible ([out, retval] BOOL * aAccessible);
  2388.  
  2389.     [propget] HRESULT Size ([out, retval] ULONG * aSize);
  2390.  
  2391. }; /* interface IFloppyImage */
  2392.  
  2393. [
  2394.     uuid(E9318F71-78D2-4b00-863C-B7CB0030A2D9),
  2395.     object,
  2396.     dual
  2397. ]
  2398. interface IFloppyDrive : IUnknown
  2399. {
  2400.     [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
  2401.     [propput] HRESULT Enabled ([in] BOOL aEnabled);
  2402.  
  2403.     [propget] HRESULT State ([out, retval] DriveState * aState);
  2404.  
  2405.     HRESULT MountImage (
  2406.         [in] GUID aImageId
  2407.     );
  2408.  
  2409.     HRESULT CaptureHostDrive (
  2410.         [in] IHostFloppyDrive * aDrive
  2411.     );
  2412.  
  2413.     HRESULT Unmount();
  2414.  
  2415.     HRESULT GetImage (
  2416.         [out, retval] IFloppyImage * * aImage
  2417.     );
  2418.  
  2419.     HRESULT GetHostDrive (
  2420.         [out, retval] IHostFloppyDrive * * aDrive
  2421.     );
  2422.  
  2423. }; /* interface IFloppyDrive */
  2424.  
  2425. [
  2426.     uuid(FD443EC1-000A-4F5B-9282-D72760A66916),
  2427.     object,
  2428.     dual
  2429. ]
  2430. interface IKeyboard : IUnknown
  2431. {
  2432.     HRESULT PutScancode (
  2433.         [in] LONG aScancode
  2434.     );
  2435.  
  2436.     HRESULT PutScancodes (
  2437.         [in, size_is(aCount)] LONG * aScancodes,
  2438.         [in] ULONG aCount,
  2439.         [out, retval] ULONG * aCodesStored
  2440.     );
  2441.  
  2442.     HRESULT PutCAD();
  2443.  
  2444. }; /* interface IKeyboard */
  2445.  
  2446. [
  2447.     uuid(FD443EC1-0006-4F5B-9282-D72760A66916),
  2448.     object,
  2449.     dual
  2450. ]
  2451. interface IMouse : IUnknown
  2452. {
  2453.     [propget] HRESULT AbsoluteSupported ([out, retval] BOOL * aAbsoluteSupported);
  2454.  
  2455.     HRESULT PutMouseEvent (
  2456.         [in] LONG aDx,
  2457.         [in] LONG aDy,
  2458.         [in] LONG aDz,
  2459.         [in] LONG aButtonState
  2460.     );
  2461.  
  2462.     HRESULT PutMouseEventAbsolute (
  2463.         [in] LONG aX,
  2464.         [in] LONG aY,
  2465.         [in] LONG aDz,
  2466.         [in] LONG aButtonState
  2467.     );
  2468.  
  2469. }; /* interface IMouse */
  2470.  
  2471. [
  2472.     uuid(af431304-5b09-40e2-94da-3c3cb03822c1),
  2473.     object,
  2474.     dual
  2475. ]
  2476. interface IFramebuffer : IUnknown
  2477. {
  2478.     [propget] HRESULT Address ([out, retval] BYTE * * aAddress);
  2479.  
  2480.     [propget] HRESULT Width ([out, retval] ULONG * aWidth);
  2481.  
  2482.     [propget] HRESULT Height ([out, retval] ULONG * aHeight);
  2483.  
  2484.     [propget] HRESULT BitsPerPixel ([out, retval] ULONG * aBitsPerPixel);
  2485.  
  2486.     [propget] HRESULT BytesPerLine ([out, retval] ULONG * aBytesPerLine);
  2487.  
  2488.     [propget] HRESULT PixelFormat ([out, retval] ULONG * aPixelFormat);
  2489.  
  2490.     [propget] HRESULT UsesGuestVRAM ([out, retval] BOOL * aUsesGuestVRAM);
  2491.  
  2492.     [propget] HRESULT HeightReduction ([out, retval] ULONG * aHeightReduction);
  2493.  
  2494.     [propget] HRESULT Overlay ([out, retval] IFramebufferOverlay * * aOverlay);
  2495.  
  2496.     HRESULT Lock();
  2497.  
  2498.     HRESULT Unlock();
  2499.  
  2500.     HRESULT NotifyUpdate (
  2501.         [in] ULONG aX,
  2502.         [in] ULONG aY,
  2503.         [in] ULONG aWidth,
  2504.         [in] ULONG aHeight,
  2505.         [out, retval] BOOL * aFinished
  2506.     );
  2507.  
  2508.     HRESULT RequestResize (
  2509.         [in] ULONG aScreenId,
  2510.         [in] ULONG aPixelFormat,
  2511.         [in] BYTE * aVRAM,
  2512.         [in] ULONG aBitsPerPixel,
  2513.         [in] ULONG aBytesPerLine,
  2514.         [in] ULONG aWidth,
  2515.         [in] ULONG aHeight,
  2516.         [out, retval] BOOL * aFinished
  2517.     );
  2518.  
  2519.     HRESULT OperationSupported (
  2520.         [in] FramebufferAccelerationOperation aOperation,
  2521.         [out, retval] BOOL * aSupported
  2522.     );
  2523.  
  2524.     HRESULT VideoModeSupported (
  2525.         [in] ULONG aWidth,
  2526.         [in] ULONG aHeight,
  2527.         [in] ULONG aBpp,
  2528.         [out, retval] BOOL * aSupported
  2529.     );
  2530.  
  2531.     HRESULT SolidFill (
  2532.         [in] ULONG aX,
  2533.         [in] ULONG aY,
  2534.         [in] ULONG aWidth,
  2535.         [in] ULONG aHeight,
  2536.         [in] ULONG aColor,
  2537.         [out, retval] BOOL * aHandled
  2538.     );
  2539.  
  2540.     HRESULT CopyScreenBits (
  2541.         [in] ULONG aXDst,
  2542.         [in] ULONG aYDst,
  2543.         [in] ULONG aXSrc,
  2544.         [in] ULONG aYSrc,
  2545.         [in] ULONG aWidth,
  2546.         [in] ULONG aHeight,
  2547.         [out, retval] BOOL * aHandled
  2548.     );
  2549.  
  2550.     HRESULT GetVisibleRegion (
  2551.         [in] BYTE * aRectangles,
  2552.         [in] ULONG aCount,
  2553.         [out, retval] ULONG * aCountCopied
  2554.     );
  2555.  
  2556.     HRESULT SetVisibleRegion (
  2557.         [in] BYTE * aRectangles,
  2558.         [in] ULONG aCount
  2559.     );
  2560.  
  2561. }; /* interface IFramebuffer */
  2562.  
  2563. [
  2564.     uuid(0bcc1c7e-e415-47d2-bfdb-e4c705fb0f47),
  2565.     object,
  2566.     dual
  2567. ]
  2568. interface IFramebufferOverlay : IFrameBuffer
  2569. {
  2570.     [propget] HRESULT X ([out, retval] ULONG * aX);
  2571.  
  2572.     [propget] HRESULT Y ([out, retval] ULONG * aY);
  2573.  
  2574.     [propget] HRESULT Visible ([out, retval] BOOL * aVisible);
  2575.     [propput] HRESULT Visible ([in] BOOL aVisible);
  2576.  
  2577.     [propget] HRESULT Alpha ([out, retval] ULONG * aAlpha);
  2578.     [propput] HRESULT Alpha ([in] ULONG aAlpha);
  2579.  
  2580.     HRESULT Move (
  2581.         [in] ULONG aX,
  2582.         [in] ULONG aY
  2583.     );
  2584.  
  2585. }; /* interface IFramebufferOverlay */
  2586.  
  2587. [
  2588.     uuid(09789f63-4525-48e5-a5e4-1080453b0eab),
  2589.     object,
  2590.     dual
  2591. ]
  2592. interface IDisplay : IUnknown
  2593. {
  2594.     [propget] HRESULT Width ([out, retval] ULONG * aWidth);
  2595.  
  2596.     [propget] HRESULT Height ([out, retval] ULONG * aHeight);
  2597.  
  2598.     [propget] HRESULT BitsPerPixel ([out, retval] ULONG * aBitsPerPixel);
  2599.  
  2600.     HRESULT SetupInternalFramebuffer (
  2601.         [in] ULONG aDepth
  2602.     );
  2603.  
  2604.     HRESULT LockFramebuffer (
  2605.         [out, retval] BYTE * * aAddress
  2606.     );
  2607.  
  2608.     HRESULT UnlockFramebuffer();
  2609.  
  2610.     HRESULT RegisterExternalFramebuffer (
  2611.         [in] IFramebuffer * aFramebuffer
  2612.     );
  2613.  
  2614.     HRESULT SetFramebuffer (
  2615.         [in] ULONG aScreenId,
  2616.         [in] IFramebuffer * aFramebuffer
  2617.     );
  2618.  
  2619.     HRESULT GetFramebuffer (
  2620.         [in] ULONG aScreenId,
  2621.         [out] IFramebuffer * * aFramebuffer,
  2622.         [out] LONG * aXOrigin,
  2623.         [out] LONG * aYOrigin
  2624.     );
  2625.  
  2626.     HRESULT SetVideoModeHint (
  2627.         [in] ULONG aWidth,
  2628.         [in] ULONG aHeight,
  2629.         [in] ULONG aBitsPerPixel,
  2630.         [in] ULONG aDisplay
  2631.     );
  2632.  
  2633.     HRESULT SetSeamlessMode (
  2634.         [in] BOOL aEnabled
  2635.     );
  2636.  
  2637.     HRESULT TakeScreenShot (
  2638.         [in] BYTE * aAddress,
  2639.         [in] ULONG aWidth,
  2640.         [in] ULONG aHeight
  2641.     );
  2642.  
  2643.     HRESULT DrawToScreen (
  2644.         [in] BYTE * aAddress,
  2645.         [in] ULONG aX,
  2646.         [in] ULONG aY,
  2647.         [in] ULONG aWidth,
  2648.         [in] ULONG aHeight
  2649.     );
  2650.  
  2651.     HRESULT InvalidateAndUpdate();
  2652.  
  2653.     HRESULT ResizeCompleted (
  2654.         [in] ULONG aScreenId
  2655.     );
  2656.  
  2657.     HRESULT UpdateCompleted();
  2658.  
  2659. }; /* interface IDisplay */
  2660.  
  2661. [
  2662.     uuid(78dfc978-ecb0-44ee-8b20-54549dd4539e),
  2663.     object,
  2664.     dual
  2665. ]
  2666. interface INetworkAdapter : IUnknown
  2667. {
  2668.     [propget] HRESULT AdapterType ([out, retval] NetworkAdapterType * aAdapterType);
  2669.     [propput] HRESULT AdapterType ([in] NetworkAdapterType aAdapterType);
  2670.  
  2671.     [propget] HRESULT Slot ([out, retval] ULONG * aSlot);
  2672.  
  2673.     [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
  2674.     [propput] HRESULT Enabled ([in] BOOL aEnabled);
  2675.  
  2676.     [propget] HRESULT MACAddress ([out, retval] BSTR * aMACAddress);
  2677.     [propput] HRESULT MACAddress ([in] BSTR aMACAddress);
  2678.  
  2679.     [propget] HRESULT AttachmentType ([out, retval] NetworkAttachmentType * aAttachmentType);
  2680.  
  2681.     [propget] HRESULT HostInterface ([out, retval] BSTR * aHostInterface);
  2682.     [propput] HRESULT HostInterface ([in] BSTR aHostInterface);
  2683.  
  2684.     [propget] HRESULT InternalNetwork ([out, retval] BSTR * aInternalNetwork);
  2685.     [propput] HRESULT InternalNetwork ([in] BSTR aInternalNetwork);
  2686.  
  2687.     [propget] HRESULT CableConnected ([out, retval] BOOL * aCableConnected);
  2688.     [propput] HRESULT CableConnected ([in] BOOL aCableConnected);
  2689.  
  2690.     [propget] HRESULT TraceEnabled ([out, retval] BOOL * aTraceEnabled);
  2691.     [propput] HRESULT TraceEnabled ([in] BOOL aTraceEnabled);
  2692.  
  2693.     [propget] HRESULT TraceFile ([out, retval] BSTR * aTraceFile);
  2694.     [propput] HRESULT TraceFile ([in] BSTR aTraceFile);
  2695.  
  2696.     HRESULT AttachToNAT();
  2697.  
  2698.     HRESULT AttachToHostInterface();
  2699.  
  2700.     HRESULT AttachToInternalNetwork();
  2701.  
  2702.     HRESULT Detach();
  2703.  
  2704. }; /* interface INetworkAdapter */
  2705.  
  2706. [
  2707.     uuid(937f6970-5103-4745-b78e-d28dcf1479a8),
  2708.     object,
  2709.     dual
  2710. ]
  2711. interface ISerialPort : IUnknown
  2712. {
  2713.     [propget] HRESULT Slot ([out, retval] ULONG * aSlot);
  2714.  
  2715.     [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
  2716.     [propput] HRESULT Enabled ([in] BOOL aEnabled);
  2717.  
  2718.     [propget] HRESULT IOBase ([out, retval] ULONG * aIOBase);
  2719.     [propput] HRESULT IOBase ([in] ULONG aIOBase);
  2720.  
  2721.     [propget] HRESULT IRQ ([out, retval] ULONG * aIRQ);
  2722.     [propput] HRESULT IRQ ([in] ULONG aIRQ);
  2723.  
  2724.     [propget] HRESULT HostMode ([out, retval] PortMode * aHostMode);
  2725.     [propput] HRESULT HostMode ([in] PortMode aHostMode);
  2726.  
  2727.     [propget] HRESULT Server ([out, retval] BOOL * aServer);
  2728.     [propput] HRESULT Server ([in] BOOL aServer);
  2729.  
  2730.     [propget] HRESULT Path ([out, retval] BSTR * aPath);
  2731.     [propput] HRESULT Path ([in] BSTR aPath);
  2732.  
  2733. }; /* interface ISerialPort */
  2734.  
  2735. [
  2736.     uuid(0c925f06-dd10-4b77-8de8-294d738c3214),
  2737.     object,
  2738.     dual
  2739. ]
  2740. interface IParallelPort : IUnknown
  2741. {
  2742.     [propget] HRESULT Slot ([out, retval] ULONG * aSlot);
  2743.  
  2744.     [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
  2745.     [propput] HRESULT Enabled ([in] BOOL aEnabled);
  2746.  
  2747.     [propget] HRESULT IOBase ([out, retval] ULONG * aIOBase);
  2748.     [propput] HRESULT IOBase ([in] ULONG aIOBase);
  2749.  
  2750.     [propget] HRESULT IRQ ([out, retval] ULONG * aIRQ);
  2751.     [propput] HRESULT IRQ ([in] ULONG aIRQ);
  2752.  
  2753.     [propget] HRESULT Path ([out, retval] BSTR * aPath);
  2754.     [propput] HRESULT Path ([in] BSTR aPath);
  2755.  
  2756. }; /* interface IParallelPort */
  2757.  
  2758. [
  2759.     uuid(358b05cd-6d43-42b9-9c2b-75d466a58cfc),
  2760.     object,
  2761.     dual
  2762. ]
  2763. interface IMachineDebugger : IUnknown
  2764. {
  2765.     [propget] HRESULT Singlestep ([out, retval] BOOL * aSinglestep);
  2766.     [propput] HRESULT Singlestep ([in] BOOL aSinglestep);
  2767.  
  2768.     [propget] HRESULT RecompileUser ([out, retval] BOOL * aRecompileUser);
  2769.     [propput] HRESULT RecompileUser ([in] BOOL aRecompileUser);
  2770.  
  2771.     [propget] HRESULT RecompileSupervisor ([out, retval] BOOL * aRecompileSupervisor);
  2772.     [propput] HRESULT RecompileSupervisor ([in] BOOL aRecompileSupervisor);
  2773.  
  2774.     [propget] HRESULT PATMEnabled ([out, retval] BOOL * aPATMEnabled);
  2775.     [propput] HRESULT PATMEnabled ([in] BOOL aPATMEnabled);
  2776.  
  2777.     [propget] HRESULT CSAMEnabled ([out, retval] BOOL * aCSAMEnabled);
  2778.     [propput] HRESULT CSAMEnabled ([in] BOOL aCSAMEnabled);
  2779.  
  2780.     [propget] HRESULT LogEnabled ([out, retval] BOOL * aLogEnabled);
  2781.     [propput] HRESULT LogEnabled ([in] BOOL aLogEnabled);
  2782.  
  2783.     [propget] HRESULT HWVirtExEnabled ([out, retval] BOOL * aHWVirtExEnabled);
  2784.  
  2785.     [propget] HRESULT VirtualTimeRate ([out, retval] ULONG * aVirtualTimeRate);
  2786.     [propput] HRESULT VirtualTimeRate ([in] ULONG aVirtualTimeRate);
  2787.  
  2788.     [propget] HRESULT VM ([out, retval] ULONG64 * aVM);
  2789.  
  2790.     HRESULT ResetStats();
  2791.  
  2792.     HRESULT DumpStats();
  2793.  
  2794. }; /* interface IMachineDebugger */
  2795.  
  2796. [
  2797.     uuid(f4c2d3dc-f109-4da7-93b1-ec28973ac89f),
  2798.     object,
  2799.     dual
  2800. ]
  2801. interface IUSBController : IUnknown
  2802. {
  2803.     [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
  2804.     [propput] HRESULT Enabled ([in] BOOL aEnabled);
  2805.  
  2806.     [propget] HRESULT EnabledEhci ([out, retval] BOOL * aEnabledEhci);
  2807.     [propput] HRESULT EnabledEhci ([in] BOOL aEnabledEhci);
  2808.  
  2809.     [propget] HRESULT USBStandard ([out, retval] USHORT * aUSBStandard);
  2810.  
  2811.     [propget] HRESULT DeviceFilters ([out, retval] IUSBDeviceFilterCollection * * aDeviceFilters);
  2812.  
  2813.     HRESULT CreateDeviceFilter (
  2814.         [in] BSTR aName,
  2815.         [out, retval] IUSBDeviceFilter * * aFilter
  2816.     );
  2817.  
  2818.     HRESULT InsertDeviceFilter (
  2819.         [in] ULONG aPosition,
  2820.         [in] IUSBDeviceFilter * aFilter
  2821.     );
  2822.  
  2823.     HRESULT RemoveDeviceFilter (
  2824.         [in] ULONG aPosition,
  2825.         [out, retval] IUSBDeviceFilter * * aFilter
  2826.     );
  2827.  
  2828. }; /* interface IUSBController */
  2829.  
  2830. [
  2831.     uuid(aefe00f7-eb8a-454b-9ea4-fd5ad93c0e99),
  2832.     object,
  2833.     dual
  2834. ]
  2835. interface IUSBDeviceEnumerator : IUnknown
  2836. {
  2837.     HRESULT HasMore ([out, retval] BOOL * more);
  2838.  
  2839.     HRESULT GetNext ([out, retval] IUSBDevice * * next);
  2840.  
  2841.  
  2842. }; /* interface IUSBDeviceEnumerator */
  2843.  
  2844. [
  2845.     uuid(e31f3248-90dd-4ca2-95f0-6b36042d96a2),
  2846.     object,
  2847.     dual
  2848. ]
  2849. interface IUSBDeviceCollection : IUnknown
  2850. {
  2851.     [propget] HRESULT Count ([out, retval] ULONG * count);
  2852.  
  2853.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IUSBDevice * * item);
  2854.  
  2855.     HRESULT Enumerate ([out, retval] IUSBDeviceEnumerator * * enumerator);
  2856.  
  2857.     HRESULT FindById (
  2858.         [in] GUID aId,
  2859.         [out, retval] IUSBDevice * * aDevice
  2860.     );
  2861.  
  2862.     HRESULT FindByAddress (
  2863.         [in] BSTR aName,
  2864.         [out, retval] IUSBDevice * * aDevice
  2865.     );
  2866.  
  2867.  
  2868. }; /* interface IUSBDeviceCollection */
  2869.  
  2870. [
  2871.     uuid(850af07b-9ee8-48c2-b6b0-f6d0acbf63c3),
  2872.     object,
  2873.     dual
  2874. ]
  2875. interface IUSBDevice : IUnknown
  2876. {
  2877.     [propget] HRESULT Id ([out, retval] GUID * aId);
  2878.  
  2879.     [propget] HRESULT VendorId ([out, retval] USHORT * aVendorId);
  2880.  
  2881.     [propget] HRESULT ProductId ([out, retval] USHORT * aProductId);
  2882.  
  2883.     [propget] HRESULT Revision ([out, retval] USHORT * aRevision);
  2884.  
  2885.     [propget] HRESULT Manufacturer ([out, retval] BSTR * aManufacturer);
  2886.  
  2887.     [propget] HRESULT Product ([out, retval] BSTR * aProduct);
  2888.  
  2889.     [propget] HRESULT SerialNumber ([out, retval] BSTR * aSerialNumber);
  2890.  
  2891.     [propget] HRESULT Address ([out, retval] BSTR * aAddress);
  2892.  
  2893.     [propget] HRESULT Port ([out, retval] USHORT * aPort);
  2894.  
  2895.     [propget] HRESULT Version ([out, retval] USHORT * aVersion);
  2896.  
  2897.     [propget] HRESULT PortVersion ([out, retval] USHORT * aPortVersion);
  2898.  
  2899.     [propget] HRESULT Remote ([out, retval] BOOL * aRemote);
  2900.  
  2901. }; /* interface IUSBDevice */
  2902.  
  2903. [
  2904.     uuid(833339b1-3f76-412c-a06e-dbb3fe060285),
  2905.     object,
  2906.     dual
  2907. ]
  2908. interface IUSBDeviceFilterEnumerator : IUnknown
  2909. {
  2910.     HRESULT HasMore ([out, retval] BOOL * more);
  2911.  
  2912.     HRESULT GetNext ([out, retval] IUSBDeviceFilter * * next);
  2913.  
  2914.  
  2915. }; /* interface IUSBDeviceFilterEnumerator */
  2916.  
  2917. [
  2918.     uuid(4fa3fc99-ceb1-4bf5-a9cb-e962d825c1ef),
  2919.     object,
  2920.     dual
  2921. ]
  2922. interface IUSBDeviceFilterCollection : IUnknown
  2923. {
  2924.     [propget] HRESULT Count ([out, retval] ULONG * count);
  2925.  
  2926.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IUSBDeviceFilter * * item);
  2927.  
  2928.     HRESULT Enumerate ([out, retval] IUSBDeviceFilterEnumerator * * enumerator);
  2929.  
  2930.  
  2931. }; /* interface IUSBDeviceFilterCollection */
  2932.  
  2933. [
  2934.     uuid(d6831fb4-1a94-4c2c-96ef-8d0d6192066d),
  2935.     object,
  2936.     dual
  2937. ]
  2938. interface IUSBDeviceFilter : IUnknown
  2939. {
  2940.     [propget] HRESULT Name ([out, retval] BSTR * aName);
  2941.     [propput] HRESULT Name ([in] BSTR aName);
  2942.  
  2943.     [propget] HRESULT Active ([out, retval] BOOL * aActive);
  2944.     [propput] HRESULT Active ([in] BOOL aActive);
  2945.  
  2946.     [propget] HRESULT VendorId ([out, retval] BSTR * aVendorId);
  2947.     [propput] HRESULT VendorId ([in] BSTR aVendorId);
  2948.  
  2949.     [propget] HRESULT ProductId ([out, retval] BSTR * aProductId);
  2950.     [propput] HRESULT ProductId ([in] BSTR aProductId);
  2951.  
  2952.     [propget] HRESULT Revision ([out, retval] BSTR * aRevision);
  2953.     [propput] HRESULT Revision ([in] BSTR aRevision);
  2954.  
  2955.     [propget] HRESULT Manufacturer ([out, retval] BSTR * aManufacturer);
  2956.     [propput] HRESULT Manufacturer ([in] BSTR aManufacturer);
  2957.  
  2958.     [propget] HRESULT Product ([out, retval] BSTR * aProduct);
  2959.     [propput] HRESULT Product ([in] BSTR aProduct);
  2960.  
  2961.     [propget] HRESULT SerialNumber ([out, retval] BSTR * aSerialNumber);
  2962.     [propput] HRESULT SerialNumber ([in] BSTR aSerialNumber);
  2963.  
  2964.     [propget] HRESULT Port ([out, retval] BSTR * aPort);
  2965.     [propput] HRESULT Port ([in] BSTR aPort);
  2966.  
  2967.     [propget] HRESULT Remote ([out, retval] BSTR * aRemote);
  2968.     [propput] HRESULT Remote ([in] BSTR aRemote);
  2969.  
  2970.     [propget] HRESULT MaskedInterfaces ([out, retval] ULONG * aMaskedInterfaces);
  2971.     [propput] HRESULT MaskedInterfaces ([in] ULONG aMaskedInterfaces);
  2972.  
  2973. }; /* interface IUSBDeviceFilter */
  2974.  
  2975. [
  2976.     uuid(a0c55136-939f-4d20-b9d3-4d406f08bfa5),
  2977.     object,
  2978.     dual
  2979. ]
  2980. interface IHostUSBDeviceEnumerator : IUnknown
  2981. {
  2982.     HRESULT HasMore ([out, retval] BOOL * more);
  2983.  
  2984.     HRESULT GetNext ([out, retval] IHostUSBDevice * * next);
  2985.  
  2986.  
  2987. }; /* interface IHostUSBDeviceEnumerator */
  2988.  
  2989. [
  2990.     uuid(f9d3f96d-b027-4994-b589-70bb9ee0d364),
  2991.     object,
  2992.     dual
  2993. ]
  2994. interface IHostUSBDeviceCollection : IUnknown
  2995. {
  2996.     [propget] HRESULT Count ([out, retval] ULONG * count);
  2997.  
  2998.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IHostUSBDevice * * item);
  2999.  
  3000.     HRESULT Enumerate ([out, retval] IHostUSBDeviceEnumerator * * enumerator);
  3001.  
  3002.     HRESULT FindById (
  3003.         [in] GUID aId,
  3004.         [out, retval] IHostUSBDevice * * aDevice
  3005.     );
  3006.  
  3007.     HRESULT FindByAddress (
  3008.         [in] BSTR aName,
  3009.         [out, retval] IHostUSBDevice * * aDevice
  3010.     );
  3011.  
  3012.  
  3013. }; /* interface IHostUSBDeviceCollection */
  3014.  
  3015. [
  3016.     uuid(173b4b44-d268-4334-a00d-b6521c9a740a),
  3017.     object,
  3018.     dual
  3019. ]
  3020. interface IHostUSBDevice : IUSBDevice
  3021. {
  3022.     [propget] HRESULT State ([out, retval] USBDeviceState * aState);
  3023.  
  3024. }; /* interface IHostUSBDevice */
  3025.  
  3026. [
  3027.     uuid(ff735211-903e-4642-9c37-189eb44579fe),
  3028.     object,
  3029.     dual
  3030. ]
  3031. interface IHostUSBDeviceFilterEnumerator : IUnknown
  3032. {
  3033.     HRESULT HasMore ([out, retval] BOOL * more);
  3034.  
  3035.     HRESULT GetNext ([out, retval] IHostUSBDeviceFilter * * next);
  3036.  
  3037.  
  3038. }; /* interface IHostUSBDeviceFilterEnumerator */
  3039.  
  3040. [
  3041.     uuid(1a80458b-87f1-4a74-995d-04e2330119e0),
  3042.     object,
  3043.     dual
  3044. ]
  3045. interface IHostUSBDeviceFilterCollection : IUnknown
  3046. {
  3047.     [propget] HRESULT Count ([out, retval] ULONG * count);
  3048.  
  3049.     HRESULT GetItemAt ([in] ULONG index, [out, retval] IHostUSBDeviceFilter * * item);
  3050.  
  3051.     HRESULT Enumerate ([out, retval] IHostUSBDeviceFilterEnumerator * * enumerator);
  3052.  
  3053.  
  3054. }; /* interface IHostUSBDeviceFilterCollection */
  3055.  
  3056. [
  3057.     uuid(4cc70246-d74a-400f-8222-3900489c0374),
  3058.     object,
  3059.     dual
  3060. ]
  3061. interface IHostUSBDeviceFilter : IUSBDeviceFilter
  3062. {
  3063.     [propget] HRESULT Action ([out, retval] USBDeviceFilterAction * aAction);
  3064.     [propput] HRESULT Action ([in] USBDeviceFilterAction aAction);
  3065.  
  3066. }; /* interface IHostUSBDeviceFilter */
  3067.  
  3068. [
  3069.     uuid(921873db-5f3f-4b69-91f9-7be9e535a2cb),
  3070.     object,
  3071.     dual
  3072. ]
  3073. interface IAudioAdapter : IUnknown
  3074. {
  3075.     [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
  3076.     [propput] HRESULT Enabled ([in] BOOL aEnabled);
  3077.  
  3078.     [propget] HRESULT AudioDriver ([out, retval] AudioDriverType * aAudioDriver);
  3079.     [propput] HRESULT AudioDriver ([in] AudioDriverType aAudioDriver);
  3080.  
  3081. }; /* interface IAudioAdapter */
  3082.  
  3083. [
  3084.     uuid(ed9d31ae-867f-45fc-b727-6740084d1883),
  3085.     object,
  3086.     dual
  3087. ]
  3088. interface IVRDPServer : IUnknown
  3089. {
  3090.     [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
  3091.     [propput] HRESULT Enabled ([in] BOOL aEnabled);
  3092.  
  3093.     [propget] HRESULT Port ([out, retval] ULONG * aPort);
  3094.     [propput] HRESULT Port ([in] ULONG aPort);
  3095.  
  3096.     [propget] HRESULT NetAddress ([out, retval] BSTR * aNetAddress);
  3097.     [propput] HRESULT NetAddress ([in] BSTR aNetAddress);
  3098.  
  3099.     [propget] HRESULT AuthType ([out, retval] VRDPAuthType * aAuthType);
  3100.     [propput] HRESULT AuthType ([in] VRDPAuthType aAuthType);
  3101.  
  3102.     [propget] HRESULT AuthTimeout ([out, retval] ULONG * aAuthTimeout);
  3103.     [propput] HRESULT AuthTimeout ([in] ULONG aAuthTimeout);
  3104.  
  3105.     [propget] HRESULT AllowMultiConnection ([out, retval] BOOL * aAllowMultiConnection);
  3106.     [propput] HRESULT AllowMultiConnection ([in] BOOL aAllowMultiConnection);
  3107.  
  3108. }; /* interface IVRDPServer */
  3109.  
  3110. [
  3111.     uuid(1d420fd8-e7c1-4511-abf4-a504dc6d0cbf),
  3112.     object,
  3113.     dual
  3114. ]
  3115. interface ISharedFolderEnumerator : IUnknown
  3116. {
  3117.     HRESULT HasMore ([out, retval] BOOL * more);
  3118.  
  3119.     HRESULT GetNext ([out, retval] ISharedFolder * * next);
  3120.  
  3121.  
  3122. }; /* interface ISharedFolderEnumerator */
  3123.  
  3124. [
  3125.     uuid(9c7e2282-bb16-4fa7-9138-f383c5e02353),
  3126.     object,
  3127.     dual
  3128. ]
  3129. interface ISharedFolderCollection : IUnknown
  3130. {
  3131.     [propget] HRESULT Count ([out, retval] ULONG * count);
  3132.  
  3133.     HRESULT GetItemAt ([in] ULONG index, [out, retval] ISharedFolder * * item);
  3134.  
  3135.     HRESULT Enumerate ([out, retval] ISharedFolderEnumerator * * enumerator);
  3136.  
  3137.     HRESULT FindByName (
  3138.         [in] BSTR aName,
  3139.         [out, retval] ISharedFolder * * aSharedFolder
  3140.     );
  3141.  
  3142.  
  3143. }; /* interface ISharedFolderCollection */
  3144.  
  3145. [
  3146.     uuid(8b0c5f70-9139-4f97-a421-64d5e9c335d5),
  3147.     object,
  3148.     dual
  3149. ]
  3150. interface ISharedFolder : IUnknown
  3151. {
  3152.     [propget] HRESULT Name ([out, retval] BSTR * aName);
  3153.  
  3154.     [propget] HRESULT HostPath ([out, retval] BSTR * aHostPath);
  3155.  
  3156.     [propget] HRESULT Accessible ([out, retval] BOOL * aAccessible);
  3157.  
  3158. }; /* interface ISharedFolder */
  3159.  
  3160. [
  3161.     uuid(4cdd3403-4ce8-4b47-897c-db79e090aa29),
  3162.     object,
  3163.     dual
  3164. ]
  3165. interface IInternalSessionControl : IUnknown
  3166. {
  3167.     HRESULT GetPID (
  3168.         [out, retval] ULONG * aPid
  3169.     );
  3170.  
  3171.     HRESULT GetRemoteConsole (
  3172.         [out, retval] IConsole * * aConsole
  3173.     );
  3174.  
  3175.     HRESULT AssignMachine (
  3176.         [in] IMachine * aMachine
  3177.     );
  3178.  
  3179.     HRESULT AssignRemoteMachine (
  3180.         [in] IMachine * aMachine,
  3181.         [in] IConsole * aConsole
  3182.     );
  3183.  
  3184.     HRESULT UpdateMachineState (
  3185.         [in] MachineState aAMachineState
  3186.     );
  3187.  
  3188.     HRESULT Uninitialize();
  3189.  
  3190.     HRESULT OnDVDDriveChange();
  3191.  
  3192.     HRESULT OnFloppyDriveChange();
  3193.  
  3194.     HRESULT OnNetworkAdapterChange (
  3195.         [in] INetworkAdapter * aNetworkAdapter
  3196.     );
  3197.  
  3198.     HRESULT OnSerialPortChange (
  3199.         [in] ISerialPort * aSerialPort
  3200.     );
  3201.  
  3202.     HRESULT OnParallelPortChange (
  3203.         [in] IParallelPort * aParallelPort
  3204.     );
  3205.  
  3206.     HRESULT OnVRDPServerChange();
  3207.  
  3208.     HRESULT OnUSBControllerChange();
  3209.  
  3210.     HRESULT OnSharedFolderChange (
  3211.         [in] BOOL aGlobal
  3212.     );
  3213.  
  3214.     HRESULT OnUSBDeviceAttach (
  3215.         [in] IUSBDevice * aDevice,
  3216.         [in] IVirtualBoxErrorInfo * aError,
  3217.         [in] ULONG aMaskedInterfaces
  3218.     );
  3219.  
  3220.     HRESULT OnUSBDeviceDetach (
  3221.         [in] GUID aId,
  3222.         [in] IVirtualBoxErrorInfo * aError
  3223.     );
  3224.  
  3225.     HRESULT OnShowWindow (
  3226.         [in] BOOL aCheck,
  3227.         [out] BOOL * aCanShow,
  3228.         [out] ULONG64 * aWinId
  3229.     );
  3230.  
  3231. }; /* interface IInternalSessionControl */
  3232.  
  3233. [
  3234.     uuid(12F4DCDB-12B2-4ec1-B7CD-DDD9F6C5BF4D),
  3235.     object,
  3236.     dual
  3237. ]
  3238. interface ISession : IDispatch
  3239. {
  3240.     [propget] HRESULT State ([out, retval] SessionState * aState);
  3241.  
  3242.     [propget] HRESULT Type ([out, retval] SessionType * aType);
  3243.  
  3244.     [propget] HRESULT Machine ([out, retval] IMachine * * aMachine);
  3245.  
  3246.     [propget] HRESULT Console ([out, retval] IConsole * * aConsole);
  3247.  
  3248.     HRESULT Close();
  3249.  
  3250. }; /* interface ISession */
  3251.  
  3252. [
  3253.     uuid(B1A7A4F2-47B9-4A1E-82B2-07CCD5323C3F)
  3254. ]
  3255. coclass VirtualBox
  3256. {
  3257.     [default] interface IVirtualBox;
  3258.  
  3259. }; /* coclass VirtualBox */
  3260.  
  3261. [
  3262.     uuid(3C02F46D-C9D2-4f11-A384-53F0CF917214)
  3263. ]
  3264. coclass Session
  3265. {
  3266.     [default] interface ISession;
  3267.  
  3268. }; /* coclass Session */
  3269.  
  3270. }; /* library VirtualBox */
  3271.  
  3272.